1 Pendahuluan

Berdasarkan hasil eksplorasi 1 pada twit yang memention akun @ChangeOrg_ID diketahui bahwa salah satu topik yang menjadi topik pembahasan warga net adalah tentang Teluk Benoa. Topik tersebut berkaiatan dengan penolakan warga net terhadap rencana reklamasi teluk benua di Bali. Oleh karena itu dalam eksplorasi 2 ini data yang digunakan adalah twit yang membahas tentang reklamasi tersebut. Twit dikumpulkan dengan metode semi automatic scrapping dengan dua parameter yaitu tagar #balitolakreklamasi dan balinotforsale. dua parameter tersebut menghasilkan twit sebanyak 72.640 dan 9.974 twit. Setelah dilakukan pengecekan konten duplikat didapat twit seperti dapat dilihat pada tabel di bawah ini. Jumlah twit tersebut kemudian akan digunakan dalam laporan ini.

2 Data

is_duplicate jumlah
FALSE 69013
TRUE 13603

Dari total 82.616 twit terdapat 13.603 twit yang merupakan twit duplikat atau memiliki konten yang sama. Oleh karena itu, dalam eksplorasi selanjutnya hanya akan menggunakan 69.013 twit. Distribusi twit tersebut dapat dilihat pada gambar di bawah ini.

Distribusi Twit yang menggunakan tagar bns atau btr

Distribusi Twit yang menggunakan tagar bns atau btr

Twit yang digunakan dalam laporan merupakan twit yang diunggah dengan tagar #balitolakreklamasi dan #balinotforsale dalam 6.5 tahun terakhir. Twit pertama diunggah pada 2012-06-05, sementara twit terakhir diunggah pada 2018-03-27.

Twit dibagi menjadi tiga periode waktu sesuai dengan alur kejadian di darat. Periode 1 berasal dari twit yang diunggah dari 2012-06-05 sampai 2014-03-31. Periode 2 dari 2014-04-01 sampai 2014-08-31. Periode 3 dari 2014-09-01 sampai 2018-03-31.

parameter periode n
#balinotforsale periode_1 8472
#balinotforsale periode_2 295
#balinotforsale periode_3 527
#balitolakreklamasi periode_1 9664
#balitolakreklamasi periode_2 21566
#balitolakreklamasi periode_3 28489

3 Analisis Aktor

Aktor dalam twit merupakan username atau nama akun yang terdapat dalam twitter. Aktor dibedakan menjadi, yaitu aktor sebagai pengirim twit yang selanjutnya disebut pengirim dan aktor yang terlibat. Aktor yang terlibat juga dapat menjadi aktor pengirim twit, namun di sini aktor terlbat didapat dari body twit yang posisinya berada setelah akun pertama yang dianggap sebagai pengirim.

3.1 Akun pengirim

Akun pengirim twit yang mengandung dua tagar dapat dilihat pada gambar di bawah ini. Di mana dalam gambar dapat dilihat akun ForBALI13 menjadi pengirim terbanyak. Akun tersebut merupakan akun resmi gerakan, sebagaimana dikonfirmasi oleh kordinator gerakan.

20 Akun pengirim twit terbanyak

20 Akun pengirim twit terbanyak

Selain akun ForBALI13 juga terdapat beberapa akun lain yang cukup banyak mengirimkan twit tentang tolak reklamasi teluk benoa. Akun-akun tersebut juga rata-rata memiliki follower cukup banyak. Hal ini membuat twit tentang tolak reklamasi menyebar cukup cepat. Hal ini juga menjadi salah satu strategi gerakan dengan melibatkan “artis” atau aktor yang telah lebih dulu populer. Sebagai contoh, JRX_SID yang juga merupakan anggota band SID memiliki 364 ribu lebih follower Twitter.

3.2 Akun terlibat

Gambar di bawah ini menunjukkan akun-akun yang terlibat atau yang berada dalam twit (termasuk akun pengirim). Di mana selain akun-akun yang juga muncul dalam daftar pengirim twit juga terdapat akun lain yang juga cukup populer seperti akun @SBYudhoyono dan @jokowi.

20 Akun yang paling sering dimention

20 Akun yang paling sering dimention

Gambar di atas menunjukkan bahwa dalam twit terdapat dua kelompok akun yang popler. Pertama akun yang juga muncul dalam daftar pengirim atau juga dapat dikategorikan sebagai pendukung gerakan. Kedua kelompok akun yang menjadi “sasaran” dari gerakan, termasuk akun menteri Susi (menteri kelautan dan lingkungan hidup) yang berkaitan dengan pemberian izin reklamasi. Adanya dua kelompok tersebut dapat menginfirmasi asumsi tentang penggunaan media sosial sebagai media komunikasi antara masyarakat dengan pemerintah. Dalam konteks gerakan, hal tersebut juga menjadi salah satu penyuaraan kepentingan dan “preferensi” publik.

3.3 Social network analysis

Network analysis dilakukan melalui perangkat lunak gephi, termasuk perhitungan komponen dari network seperti modularity, dan centrality. Di mana nodes merupakan username Twitte dan edges merupakan keberadaan dalam twit yang sama atau cooccurrance. Network Teluk Benoa Keterangan: Warna dalam gambar dibuat berdasarkan modularity class dan besar nodes dibuat berdasarkan eigenvector centrality. Gambar hanya menampilkan nodes dengan minimum degree 20.

Gambar di bawah ini menunjukkan bahwa pengguna twitter tidak memiliki perbedaan yang cukup mencolok karena masing-masing akun berada cukup berdekatan satu sama lain. Di satu sisi hal tersebut dapat menjadi indikator positif yang menunjukkan adanya kesamaan pandangan tentang reklamasi. Di sisi lain, keberadaannya yang cukup berdekatan tersebut juga menjadi salah satu indikator adanya satu aktor kunci yang cukup dominan. Hal tersebut bukan hal yang buruk, namun ketika terjadi akun tersebut berhenti dapat memengaruhi gerakan secara keseluruhan. Gambar berikut menunjukkan posisi 10 akun dengan eigencentrality tertinggi.

Tiga akun pertama dalam gambar di atas merupakan akun dengan eigencentrality tertinggi dalam jaringan. Artinya, akun-akun tersebut memiliki kecenderungan untuk terhubung dengan aktor-aktor (username) lain yang juga penting (lihat: konsep eigencentrality). Sehingga secara matematis juga dapat disimpulkan bahwa akun tersebut memiliki pengetahuan dan mungkin menjadi penggerak dalam jaringan gerakan bali tolak reklamasi. Sementara dua akun di bawahnya yang juga diketahui merupakan akun resmi milik mantan presiden dan presiden saat ini mengindikasikan bahwa kasus penolakan reklamasi mencoba untuk dibawa menjadi ketingkat tertinggi pemerintahan, yaitu presiden. Dengan kata lain, isu ini mencoba dibawa menjadi isu nasional dengan menggunakan media sosial.

Kenapa media sosia? dapat dijawab dengan data dari media serta hasil wawancara dengan gendovara.

4 Analisis Konten

Analisis konten twit atau tulisan yang diunggah oleh warga net melalui media sosial Twitter dapat dilakukan melalui beberapa tahapan. Tahap pertama dapat dilakukan melalui tagar atau tanda pagar (en: hashtag). Gambar di bawah ini menunjukkan beberapa tagar yang digunakan dalam setiap periode.

4.1 Tagar

Tagar merupakan salah satu indikator utama yang dapat digunakan untuk melihat sebuah konten media sosial. Dalam hal ini, tagar sering digunakan oleh pengguna media sosial sebagai penanda sebuah pembahasan, termasuk dalam Twitter.

Tagar yang digunakan

Tagar yang digunakan

Gambar di atas menunjukkan tagara (kecuali tagar balitolakreklamasi dan balinotforsale) yang menjadi parameter mendapatkan data. Asumsinya, ketia dua tagar tersebut digunakan akan menjadi terlalui dominan dalam visualisasi karena semua twit menggunakan tagar tersebut. Selain dua tagar tersebut terdapat beberapa tagar lain yang juga tidak diikutsertakan karena dianggap tidak relevan, misalnya tagar repost, share, dan beberapa angka yang tidak memiliki arti seperti 1, 2, 3 dst.

Secara umum tagar-tagar yang digunakan oleh pengguna Twitter mengalami perkembangan dari waktu ke waktu. Hal ini sejalan dengan salah satu pernyataan dari nara sumber yang mengatakan bahwa tagar yang digunakan dipilih dan disesuaikan dengan momen yang berkembang saat itu. Bali not for sale sendiri telah lebih dulu digunakan dibanding tagar balitolakreklamasi, dan setelahnya tagar terus berkembang hingga pada akhir periode ada juga tagar #kecewaamasusi. Tagar kecewaamasusi diantaranya dapat dilihat pada twit-twit berikut ini.

user date tweets
IrvanMuhammad24 2016-07-19 Laut diurug , rakyat terpuruk maka alam akan mengamuk #KecewaAmaSusi #balitolakreklamasi
Rickybilly50 2016-07-19 Bangsa pelaut tidak ngurug laut bu @susipudjiastuti #KecewaAmaSusi #balitolakreklamasi
aax_13 2016-07-19 Gerakan #BaliTolakReklamasi sudah memasuki tahun ke 4 bu @susipudjiastuti Jadi mohon maaf bu , pilihan kita hanya TOLAK /LAWAN ! #KecewaAmaSusi
13Rudi 2016-07-18 Kakek ini membela tanah lahirnya demi anak cucunya . #BaliTolakReklamasi #KecewaAmaSusi @susipudjiastuti
saputraedi646 2016-07-19 Bu @susipudjiastuti jangan liat siapa yg mau mereklamasi , lihat apa dampak dari reklamasi teluk benoa ! #KecewaAmaSusi #BaliTolakReklamasi

Twit di atas menunjukkan twit-twit yang memiliki tagar #KecewaAmaSusi dan diurutkan berdasarkan jumlah retweet terbanyak. Isi dari twit secara seklias dapat menggambarkan bahwa twit diunggah sebagai respons terhadap sikap menteri Susi terkait dengan reklamasi yang mereka hadapi. Selain itu, di sana juga mereka menyatakan bahwa pilihannya hanya menolak reklamasi.

Kasus ini sendiri muncul karena pada waktu itu, ijin reklamasi akan segara habis dan harus mendapat perpanjangan ijin. Pemeberian ijin menjadi salah satu kewenangan yang dapat diberikan oleh menteri kelautan, yaitu Susi. Namun, menurut penuturan salah seorang partisipan menteri tersebut memilih untuk diam, sehingga secara otomatis ijin pun berlanjut. Karena hal tersebutlah kemudian mereka membuat tagar #KecewaAmaSusi.

4.2 Term

Term atau kata diambil dari isi twit selain usernme dan tagar. Gambar di bawah ini menunjukkan term dalam bentuk bigram. Di mana bigram dibuat berdasarkan keberadaan term dalam twit yang sama. Misalnya, sebuah twit berisi kalimat “aku suka makan nasi” maka bigram yang dapat dibuat dari kalimat tersebut adalah “aku suka”, “suka makan”, dan “makan nasi.”

Frekuensi Bigram dalam twit

Frekuensi Bigram dalam twit

Pasangan kata yang paling banyak muncul dari twit dengan dua tagar yang jadi parameter adalah konser mini. Hal tersebut menunjukkan bahwa dua kata tersebut rutin di gunakan oleh pengguna twitter. Selain itu, berdaraskan frekuensinya, pasangan kata yang muncul selanjutnya adalah metro dan tv, yang menujukkan sebuah stasiun tv nasional. Penyebab dua kata tersebut sering muncul kemungkinan besar dipicu oleh adanya acara yang mengundang tokoh/aktor gerakan bali tolak reklamasi. Pasangan kata berikutnya adalah perpres limasatu yang merujuk pada perpres no 51 tahun 2014 tentang reklamasi teluk benoa. Kemunculan kata ini secara tidak langsung telah mengonfirmasi bahwa twit yang digunakan berisi pendapat warga net seputar reklamasi teluk benoa.

Kata atau pasangan kata berikutnya juga dapat dinterpretasikan dengan pola yang sama, yaitu dengan merujuk pada cerita baik yang didapat dari data darat. Interpretasi juga dapat dilakukan dengan merujuk pada hasil close reading twit aktor utama.

4.3 Semantic network

Selain dengan bigram di atas, hubungan antar kata dari sebuah korpus juga dapat dilihat melalui semantic network. Di mana satu term memiliki hubungan dengan term lain berdasarkan keberadaannya. Gambar di bawah ini menunjukkan hubungan antar term yang terjadi minimal 100 kali.

Word network dalam twit yang menggunakan tagar bns atau btr

Word network dalam twit yang menggunakan tagar bns atau btr

Dari gambar di atas kita dapat mengetahui bahwa gerakan telah diliput oleh tv, diantaranya adalah oleh metro dan kompas tv. Hal ini ditunjukkan oleh munculnya tiga kata tersebut dalam satu jaringan yang sama. Untuk menginfirmasi hal ini, kita dapat melihatnya secara langsung dalam isi twit berikut.

Twit dengan kata kunci tv

user date tweets
OSDGORONTALO 2014-06-19 SID meneriakkan #BalitolakReklamasi di stasiun Tv milik Hary Tanoe yg jelas2 dukung capres no .1 . Haha , hebat ! :P
AlcoholicRider 2013-08-21 30 menit lagi @MetroTv akan menayangkan #balinotforsale ,ketika genderang perang diserukan utk membela ekologi Cc @SID_Official
wyn_awan 2014-06-22 Mantap tadi ada @CopokTBH di BaliTv nyanyi #BalitolakReklamasi sama The Hydrant . !
tamaviveka 2014-05-04 #yeah @NosstressBali memukau di #BaliTv #BaliTolakReklamasi
KerabatSetempat 2013-08-21 Saksikan #BaliNOTforSALE - Metro Tv 23 .30 WIB . Jangan cuma nonton , ayo ikut berjuang !

Twit dengan kata kunci kompas tv

user date tweets
JRX_SID 2013-07-11 Interview saya dgn Kompas TV malam ini ttg konser #BaliNotForSale TIDAK ditayangkan live . Jam tayang akan saya umumkan besok . Thanx .
OSDLR_VanJava 2013-08-26 Semoga yg tadi nonton Kompas TV bukan sekedar ingin liat @JRX_SID di TV , tapi lebih ke inti permasalahan yang dibicarakan #BaliNotForSale
JRX_SID 2013-07-12 RT @SANDYFREAKS_: JRX interview dgn Kompas TV ttg konser #BaliNotForSale di @HouseOfRumble
shitlicious 2015-03-10 Eh .. Nonton Kompas TV dulu biar paham gerakan #BaliTolakReklamasi
LadyRose_OSD 2013-08-26 Lihat Kompas TV sekarang . Ada Jrx dkk membahas tentang #BaliNotForSale

4.4 Tf-idf

Penjelasan tentang TF-IDF secara umum dapat ditemukan di sini. Secara umum TF-IDF merupakan sebuah upaya untuk menemukan term yang penting dalam sebuah dokumen dengan membandingkan frekuensi dalam dokumen yang spesifik dengan frekuensi dalam dokumen secara umum. Sebagai ilustrasi, kita dapat menemukan term yang hampir pasti memiliki frekuensi yang tinggi dalam setiap dokumen, misalnya kata di, dan dan dalam. Kata-kata tersebut sering disebut stopwords. Namun karena kata tersebut tidak bersifat unik, dan juga ada dalam dokumen yang lain, maka nilai tf-idfnya akan turun. Sebaliknya, jika sebuah term memiliki frekuensi tinggi dalam sebuah dokumen dan tidak dalam dokumen yang lain, kata atau term tersebut akan memiliki nilai yang tinggi. Gambar di bawah ini, menunjukkan kata-kata dengan tf-idf tertinggi dalam setiap periode.

TF-IDF bigram per periode

TF-IDF bigram per periode

Gambar di atas menunjukkan kata atau pasangan kata yang dianggap lebih penting dibanding kata lainnya dalam setiap periode. Pada periode pertama kata terpentingnya adalah “dprd berperang.” Jika merujuk pada twit yang mengandung kata tersebut, makan kata dprd berperang dapat diinterpretasikan sebagai upaya perlawanan masyarakat Bali untuk menolak reklamasi teluk benoa dengan cara berdemonstrasi di gedung dprd Bali. Hal tersebut dapat dilihat dalam beberapa twit di bahwah ini.

user date tweets
regaladitya 2013-08-15 Cc @JRX_SID : Menuju kantor DPRD Bali untuk berperang . #BaliTolakReklamasi !
DOWNFALL_bali 2013-08-14 Semangat bli ! “@JRX_SID : Menuju kantor DPRD Bali untuk berperang . #BaliTolakReklamasi !”
GedeMeigaWira 2013-08-14 Milu sik bli !!!! Tolakk !!!!!“@JRX_SID : Menuju kantor DPRD Bali untuk berperang . #BaliTolakReklamasi !”
junkdik 2013-08-14 Prjuangkn bli . tnah air dan udara di daerah bali ini mlik leluhur “@JRX_SID : Menuju kantor DPRD Bali untuk berperang . #BaliTolakReklamasi !”
JIP_OSD 2013-08-14 Kokang Senjata ~@JRX_SID : Menuju kantor DPRD Bali untuk berperang . #BaliTolakReklamasi !

Sementara dalam periode dua, kita menemukan term yang cukup unik yaity ve fooled. Tanpa membaca lebih jauh term tersebut susah untuk diinterpretasikan. Untuk itu, beberapa twit di bawah ini mungkin dapat memberikan gambaran tentang isi twit dengan kata tersebut.

user date tweets
fajarkudil 2014-06-24 Dear @Cristiano please save our mangroove in Bali you ’ve been fooled by @SBYudhoyono cc : @forbali13 @JRX_SID #BaliTolakReklamasi #CR7FOOLED
YosephPohan 2014-06-23 @ernestprakasa : Yo @Cristiano , u ’ve been fooled by @SBYudhoyono . #CR7FOOLED #BaliTolakReklamasi” <–check this out !
N19AB 2014-06-23 #saveBali “@ernestprakasa Yo @Cristiano , u ’ve been fooled by @SBYudhoyono . #CR7FOOLED #BaliTolakReklamasi”
YESbontalan 2014-06-23 Hey @Cristiano im madridista from bali , you ’ve been fooled by @SBYudhoyono . #CR7FOOLED #BaliTolakReklamasi
REVIVALbali_ 2014-06-23 #ForBali “@ernestprakasa : Yo @Cristiano , u ’ve been fooled by @SBYudhoyono . #CR7FOOLED #BaliTolakReklamasi”

Dari twit di atas, ternyata term ve fooled berkaitan dengan keberadaan Cristiano Ronaldo ke Bali. Term ve sendiri ternyata berasal dari ’ve fooled atau u’ve been fooled. Dengan kata lain, melalui term tersebut kita dapat mengetahui bahwa warga net menganggap Cristiano telah dibohongi oleh akun yang juga ditunjukkan dalam twit tersebut.

Kata terpenting dari periode ketiga adalah art event. Term ini berkaitan dengan kegiatan yang dilakukan untuk menyuarakan penolakan reklamasi. Hal ini tercermin dalam twit di bawah ini.

user date tweets
ForBALI13 2015-12-12 Musisi , seniman , komunitas , dan banyak lg insan2 kreatif akan ramaikan #BaliTolakReklamasi Art Event 2015 besok .
leakBALI_ 2014-10-06 tgl 19 Oktober akan ada acara kren slm 12 jam . Tolak Reklamasi Art Event ayo ramaikan :) @JRX_SID #BaliTolakReklamasi
baliekarock 2014-10-06 #balitolakreklamasi #BatalkanPerpreslimasatuthbjad Art Event 19 Okt bjad Pantai Padang Galak
BaleBengong 2014-10-20 Alam dan Manusia bersatu untuk #BaliTolakReklamasi Art Event cuplikan video @ForBALI13 oleh @erickest Sebarkan !
Parau666 2014-11-22 Seperti inilah Art event diatas laut #BaliTolakReklamasi di pantai padang galak kemarin . Lawan !

4.5 Topic Modelling

Topic modelling di sini dibagi menjadi tiga bagian berdasarkan periode waktu twit diunggah. Namun sebelumnya terlebih dahulu akan dilihat topic secara umum dari data. Topik-topik yang muncul per periode selanjutnya dapat dilihat pada gambar-gambara di bawah ini. Untuk keterangan lebih lanjut dengan topic modelling dengan algoritme LDA dapat dilihat di sini.

Di dalam analisis ini twit yang digunakan hanya 55067, karena sebelumnya telah dilakukan beberapa filterisasi. Pertama, twit yang memiliki konten yang sama dihilangkan, kedua, twit yang setelah dilakukan cleaning hanya memiliki satu term dan atau koosong juga dihilangkan. Sehingga topic modelling dihasilkan dari twit yang memiliki minimal dua term setelah cleaning.

  • filter = wordcount >= 2
  • total twit = 55067
Topic modelling dari seluruh twit

Topic modelling dari seluruh twit

4.5.1 Topik 1 - aksi penolakan

Gambar nomor satu menunjukkab beberapa topik terkait dengan penolakan reklamasi teluk benoa di Balik. Di sini kita dapat melihat bahwa salah satu aksi dilakukan dengan cara melakukan demonstrasi di kantor DPRD BALI. Beberapa warga net juga menganggap aksi mereka sebagai upaya memerangi penguasa dan pengusaha yang berupaya melakukan/mendukung reklamasi dilakukan. Di sisi lain, mereka menganggap reklamasi akan merusak alam yang seharusnya dilestarikan. Hal tersebut tercermin dalam twit-twit yang menggunakan tagar balinotforsale dan atau balitolakreklamasi. Contoh twit dari periode tersebut adalah sebagai berikut:

user date tweets
JRX_SID 2013-06-26 Penguasa & mafia silakan obral tanah ini . Saya akan terus melawan . Tunggu konser #BaliNotForSale bulan Juli ini . FUCK THE GOVERNMENT !
dblessfashion 2014-12-02 #balitolakreklamasi ayok teman teman bersama sama kita tolak reklamasi teluk benoa !
JRX_SID 2013-10-09 Di Jogja seniman ditangkap karena menulis Jogja Ora Didol . Di Bali seniman ditekan karena suarakan #BaliNotForSale . Kota lain ayo BERGERAK !
JRX_SID 2013-08-17 Terima kasih utk ucapan dirgahayu 18 thn SID . Kadonya cantik : Gubernur Bali nyerah & mencabut SK reklamasi Teluk Benoa . #BaliTolakReklamasi
JRX_SID 2014-06-27 Siapapun yg dukung perjuangan #BaliTolakReklamasi harus ingat ini ; Reklamasi T .Benoa adalah agenda MP3EI pimpinan Hatta Rajasa cawapres 1 .

Selain dengan melakukan aksi demonstrasi, penolakan reklamasi juga dilakukan melalui aksi konser. Dalam hal ini, konser disebut sebagai konser bali not for sale yang juga menjadi salah satu tagar. Namun jika dilihat berdasarkan waktu keberadaannya, tagar ini digunakan lebih dulu dibanding tagar balitolakreklamasi. Dengan demikian, dapat diketahui bahwa gerakan sosial ini berusaha menggunakan kegiatan-kegiatan seni sebagai salah satu aksinya.

4.5.2 Topik 2 - pernyataan sebagai sebuah gerakan

Topik nomor dua dapat diinterpretasikan sebagai pernyataan bahwa penggunaan media sosial dengan tagar balitolakreklamasi dan balinotforsale sebagai sebuah gerakan. Dalam hal ini kemungkinan pernyataan tersebut juga disampaikan pada sebuah acara konser yang disebut konser svara bumi. Hal ini diantaranya dapat dilihat pada twit berikut.

user date tweets
AdibHidayat 2016-01-29 Ribuan orang hari ini turun ke jalan suarakan #BaliTolakReklamasi | Foto : Dwi -Bali Drone
shitlicious 2015-03-13 Turis yg piknik ke Bali , jutaan . Tp yg nolak reklamasi Teluk Benoa , ribuan . Byk yg jd penikmat alam , bukan pecinta alam . #BaliTolakReklamasi
user date tweets
solehsolihun 2014-09-30 sekarang giliran @Seringai yang membakar semangat di konser svara bumi . #BaliTolakReklamasi
rudolfdethu 2014-10-01 Bung @solehsolihun berbagi kisah tentang acara tadi malam : Catatan dari Konser Svara Bumi #BaliTolakReklamasi -
solehsolihun 2014-09-30 penutup konser svara bumi #BaliTolakReklamasi : @SID_Official
solehsolihun 2014-10-01 Catatan dari Konser Svara Bumi #BaliTolakReklamasi
solehsolihun 2014-09-30 dapet gitar yang dipake @iwanfals di konser svara bumi #BaliTolakReklamasi , kirain ada logo namanya …

4.5.3 Topik 3 - objek yang ditolak

Topik yang ketiga berkaitan dengan salah satu tuntutan gerakan dan aksi, yaitu pembatalan perpres no. 51. Hal ini dapat dilihat baik dari twit maupun dari frekuensi bigram (lihat bagain Term). Berikut adalah beberapa twit tentang perpres tersebut.

user date tweets
kurawa 2015-04-16 Masalah #BalitolakReklamasi sudah disampaikan dengan baik oleh @JRX_SID ke beliau .. responnya bagus semoga ada follow up penarikan perpres
naviculamusic 2014-06-16 SBY Batalkan sekarang Perpres No limasatu /bjad #Balitolakreklamasi –>
GlennFredly 2014-05-22 Yuk tandatangani & sebarkan petisi meminta Pres @SBYudhoyono tak ubah Perpres 45 /2011 #BaliTolakReklamasi
bontot2dead 2015-11-04 @kurawa sementara kami yg di Bali msh menunggu “keajaiban” beliau utk mencabut perpres limasatu tahun bjad #BaliTolakReklamasi
ForBALI13 2015-04-09 Selamat datang Pak @jokowi_do2 di Pulau Bali , sudahkah anda berniat mencabut Perpres limasatu th bjad ? #BaliTolakReklamasi

4.5.4 Topik 4 - pernyataan sikap melalui aksi

Sebelum lebih jauh, pada topik ke empat ada satu term yang mungkin cukup unik yaitu don. term ini berasal dari don’t dalam bahasa inggris. Berikut ini adalah beberapa twit dengan term tersebut.

user date tweets
killiyin 2013-06-25 !!!!!!!!!!!!!!!!!! “@JRX_SID : Which part of #BaliNotForSale you @SBYudhoyono @mangku_pastika DON ’T understand ?”
dianesbeo 2013-06-25 @JRX_SID : Which part of #BaliNotForSale you @SBYudhoyono @mangku_pastika DON ’T understand ?
user date tweets
JRX_SID 2014-04-01 You wanna do something for #BaliTolakReklamasi yet you don ’t speak Indonesian or Alien languange ? Easy , read this :
JRX_SID 2014-02-13 You don ’t mess with mas boy ! / @guswib #HeartForSinabung #BaliTolakReklamasi #tama #sabian
sarasdewi 2014-06-15 You don ’t know what you got till it ’s gone @SBYudhoyono #BatalkanPepreslimasatuthbjad #BaliTolakReklamasi

Topik keempat disini kurang lebih menyatakan kembali tujuan gerakan. Selain itu, topik 4 juga berkaitan dengan perjuangan yang yang dilakukan oleh warga net yang menjadi tuntutan yang harus dipenuhi. Dalam konteks ini, warga net pendukung gerakan menganggap bahwa pembatalan perperes 51 tahun 2014 dan reklamasi teluk benoa harus tercapai. Namun hingga saat ini (2018) tuntutan tersebut belum dapat dipenuhi oleh pemerintah. Mungkin karena itu pula, beragam aksi baik di dunia nyata maupun aksi di dunia maya melalui twit dengan tagar, atau penggunaan media sosial lain terus dilakukan.

Berdasarkan topik modelling pada semua data, diketahui bahwa setidaknya ada empat hal yang dibahas oleh warga net melalui twit dengan tagar balitolakreklamasi dan bali not for sale. Pertama tentang aksi penolakan. Kedua tentang penyataan sebagai sebuah gerakan. Ketiga, tuntutan gerakan, dan terakhir tentang sikap warga net terkait dengan reklamasi. Untuk memahami wacana secara lebih detil, topik modelling juga dilakukan pada twit yang telah diklasifikasikan terlebih dahulu menjadi tiga periode. Di mana setiap periode ditentukan berdasarkan waktu pengunggahan twit. Periode pertama, sebelum perpres terbit. Periode kedua setelah perpres terbit. Periode ketiga, pasca aksi atau respons.

4.6 Topic modelling periode 1

Periode pertama ditandai dengan twit-twit yang diunggah sebelum diterbitakannya perpres 51 tahun 2014. Dalam hal ini terdapat 15209 twit yang dapat dilakukan topik modelling. Twit tersebut terpilih setelah dilakukan beberapa klasifikasi seperti yang sudah dijelaskan pada bagian sebelumnya. Gambar di bawah ini menunjukkan beberapa topik yang menjadi perhatian warga net di periode pertama.

Topic modelling dari twit tentang Teluk Benoa periode 1

Topic modelling dari twit tentang Teluk Benoa periode 1

Jika dilihat dari gambar di atas, maka topik pada periode pertama terdiri dari aksi yang dilakukan di lap renon, dan juga liputan di metro tv. Selain itu pada periode pertama juga terjadi peristiwa demonstrasi di dprd. Hal ini menunjukkan bahwa setidaknya dalam gerakan bali tolak reklamasi (BTR) terdapat dua pola aksi yang utama, yaitu akasi kesenian dan juga demonstrasi. Aksi kesenian dilakukan melalui penggelaran konser yang juga sering disebut konser mini. Dalam konser ini banyak artis baik nasional maupun lokal yang dilibatkan. Orang yang datang ke konser tersebut harus membayar, dan hasil dari konser-konser tersebut dijadikan sebagai dana gerakan.

Periode pertama juga dapat disebut sebagai periode promosi gerakan. Hal ini ditunjukkan oleh adanya topik “bantu promo”, yang jika dilihat dari twit yang mengandung kata tersebut dapat diinterpretasikan sebagai ajakan untuk menyauarakan kepentingan rakyat, dan juga menyebarluaskan gerakan. Berikut adalah beberapa contoh twitnya.

user date tweets
RobyHaja 2013-12-30 Buset , hebat bener 300 Real Followers setiap 5 menit di #BaliFollowers #BaliTolakReklamasi
wayangondrong 2013-12-21 @gendovara @forbali13 oo gt @Raphi_pras : Buset , hebat bener 300 Real Followers setiap 5 menit di #BaliTolakReklamasi
zackymotor 2013-12-09 Busyet , hebat bener 300 Real Followers setiap 5 menit di #BaliFollowers #BaliTolakReklamasi
zackymotor 2013-12-09 Buset , hebat bener 300 Real Followers setiap 5 menit di #BaliFollowers #BaliTolakReklamasi
GMelysa 2014-01-12 @Mr_DickyJhon : Buset , hebat bener 300 Real Followers setiap 5 menit di #BaliFollowers #BaliTolakReklamasi”

Dari twit di atas dapat dilihat dengan jelas bahwa ajakan yang dilakukan terutama ditujukan pada wisatwan yang datang ke Bali, khususnya selebritis. Di masa awal sebuah gerakan hal ini cukup masuk akal untuk dilakukan, karena selebitis pada umumnya sudah memiliki follower yang banyak. Sehingga dengan terlibatnya selebritis dalam gerakan yang dalam konteks ini dapat dilakukan dengan hanya membuat twit dengan tagar BTR, tuntutan atau gaung gerakan tersebar lebih luas.

Langkah atau ajakan tersebut pun membuat beberapa selebritis akhirnya ikut serta dalam gerakan atau penggunaan tagar. Hal ini dibuktikan dengan munculnya akun milik iwan fals (yang juga pernah terlibat dalam konser BTR), smilingdiana, dan Melani Subono (both of them are celebrity). Selain artis nasional juga tentunya banyak artis lokal yang dalam konteks ini diwakili oleh para personel band dari berbagai aliran musik yang terlibat.

Selain mengajak selebitis, gerakan BTR juga membuat media promosi lainnya seperti pembuatan video dan poster. Di mana hasil dari topik modelling juga menunjukkan adanya ajakan untuk mengunduh video klip musik yang juga terkaiat dengan penolakan reklamasi. Dengan kata lain, pada periode pertama gerakan BTR, twitter digunakan sebagai media komunikasi, kordinasi, sekaligus penyebarluasan pesan penolakan reklamasi terhadap warga net.

4.7 Topic modelling periode 2

Data untuk topik modelling 2 ini berasal dari twit yang diunggah setelah ada atau terbitnya perpres nomor 51 tahun 2014. Berikut adalah hasil topic modelling dari 17186 twit untuk periode 2.

Topic modelling dari twit tentang Teluk Benoa periode 1

Topic modelling dari twit tentang Teluk Benoa periode 1

Topik pertama dari periode dua adalah tentang perpres yang memungkinkan atau mendukung adanya reklamasi teluk benoa yaitu perpres 51 tahun 2014. Topik pertama di sini kurang lebih juga berisi tentang hal tersebut, di mana perpres nomor 51 dianggap oleh warga net pengguna Twitter sebagai sebuah kesalahan sehingga harus dibatalkan. Di sini warga net juga mengungkapkan alasan mereka mendukung gerakan pembatalan ini seperti dapat dilhat dalam twt berikut.

user date tweets
yuanshaa 2014-06-27 Itulah alasan mengapa saya amat sangat bangga dgn Bali & masyarakatnya . Dan jg alasan mengapa saya mendukung gerakan #BALITOLAKREKLAMASI :)
ROEDIN_AMIR 2014-08-30 alasan mengapa mendukung gerakan #BaliTolakReklamasi #BatalkanPerpreslimasatuthbjad karena kami masih ingin melihat keindahan alam bali ! @JRX_SID
Fahqi_SID 2014-08-22 alasan saya mendukung gerkan #BaliTolakReklamasi ,saya tulus pakai hati ,dan tidak di bayar sepeserpun @forbali13
nataldevi 2014-08-21 Ini alasan mengapa kita harus mendukung gerakan #BaliTolakReklamasi cc : @forbali13
ERX_BASTARD 2014-08-05 Supaya yg pro segera di amah leak =)) RT “@menarafmbali : Apa Alasan Kamu Mendukung #BaliTolakReklamasi ? Tulis Disini !”

Adapun sepertinya pengungkapan alasan tersebut juga dipicu oleh “mungkin” siaran radio yang menanyakan tentang alasan mendukung gerakan BTR. Hal ini dapat dilihat pada twit terakhir di atas, yaitu twit yang diunggah oleh akun @menarafmbali dan di RT oleh warga net lainnya.

Lebih jauh dari itu, sepertinya setiap orang (pengguna Twitter) memiliki alasannya masing-masing. Di sini kita melihat bahwa ada yang mendukung karena masyarakat lain juga mendukung. Namun ada juga yang mendukung karena menganggap reklamasi justru akan merusak alam. Walaupun sebenarnya reklamasi sendiri dilakukan untuk meng attract turis untuk datang ke Bali. Namun di sini warga net justru menganggap sebaliknya, turis yang datang ke Bali bukan untuk mendapatkan fasilitas berkelas internasional seperti rencana pembangunan di lahan hasil reklamasi. Tapi, turs datang ke Bali untuk menikmati keindahan alam Bali. Hal ini pula lah yang membuat mereka yakin Reklamasi merupakan hal yang tidak seharusnya di lakukan, khususnya teluk Benoa yang juga merupakan daerah konservasi menurut perpres tahun 2011.

Hal lain yang juga menjadi perhatian warga net pada periode ke dua adalah adanya kecurigaan pemnfaatan tokoh internasional (cristiano) oleh penguasa (pemerintah). Sehingga warga net kemudian juga memunculkan tagar #cr7fooled (lihat bagian tagar). Topik dua dari periode dua kurang lebih membicarakan hal tersebut.

user date tweets
cblaksana 2014-06-28 @sbyudhoyono jangan lupa besok jika ada parade budaya Bali #BaliTolakReklamasi ikut ya sama kita @forbali13 @jrx_sid :)
leakBALI_ 2014-06-27 mau liat aksi parade budaya #BaliTolakReklamasi td siang yg dihadiri ribuan orang cek TL @forbali13 INGAT mereka tanpa dibayar !
baliekarock 2014-06-26 Liat aksi parade budaya #balitolakreklamasi tadi via tweet @RCBS_FM . Lawan !!!
YopiZhuko31 2014-06-26 Akhir ’a selesai jgak parade budaya tolak reklamasi tp untuk memperjuangkan pulau bali masih panjang #BaliTolakReklamasi
ajuesss 2014-06-26 @forbali13 : hello rakyat bali saksikanlah parade budaya #BatalkanPerpreslimasatuthbjad #BaliTolakReklamasi

Salah satu kegiatan Cristiano Ronaldo di Bali waktu itu adalah menanam mangrove. Di sana warga net menyuarakan bahwa melakukan reklamasi sama dengan merusak mangrove yang ditanam. Dalam periode ini pula, salah satu aksi yang kemudian diwujudkan di dunia nyata adalah dengan melakukan parade budaya.

4.8 Topic modelling periode 3

Periode terakhir atau periode tiga merupakan fase di mana gerakan sudah matang. Matang di sini diartikan tujuan gerakan sudah jelas, pihak yang dituntut juga jelas. Selain itu, pada fase ini berbagai aktivitas juga sudah berjalan. Dalam konteks ini, twit yang diunggah pada periode ini kemungkinan besar juga menggambarkan hal yang kurang lebih sama, yaitu ada topik tentang tujuan gerakan, pihak yang dituntut, serta kegiatan rutinnya, yaitu konser mini. Asumsi tersebut dapat dibuktikan dengan melihat hasil topic modelling dari 22672 twit pada periode 3 seperti dapat dilihat pada gambar di bawah ini.

Topic modelling dari twit tentang Teluk Benoa periode 1

Topic modelling dari twit tentang Teluk Benoa periode 1

Topik pertama dari periode tigas di sini berkaitan dengan beberapa aksi mendukung gerakan menolak reklamasi. Kegiatan tersebut berupa konser svara bumi dan festival layang-layang di padang galak. Selain itu, ketika pada periode 1 aksi demonstrasi dilakukan di kantor DPRD pada periode 3 ini aksi dilakukan di kantor Gubernur. Selain dilakukan di Bali, aski menolak reklamasi juga dilakukan di Jakarta. Aksi di Jakarta dilakukan dalam bentuk konser yang dilaksanakan di Rolling Stonde Cafe. Di mana majalah musik tersebut juga telah memberikan penghargaan pada gerakan bali tolak reklamasi seperti dapat dilihat pada beberapa twit berikut.

user date tweets
terry_Husein 2015-06-03 @AdibHidayat@ForumHijau_ID : #BaliTolakReklamasi : Penghargaan Rolling Stone untuk Gerakan Bali Tolak Reklamasi -
oldguntur 2015-06-02 @AdibHidayat@ForumHijau_ID : #BaliTolakReklamasi : Penghargaan Rolling Stone untuk Gerakan Bali Tolak Reklamasi -”
MCAOps 2015-06-02 #BaliTolakReklamasi : Penghargaan Rolling Stone untuk Gerakan Bali Tolak Reklamasi - via @ForumHijau_ID
SarinaIDN 2015-06-02 #BaliTolakReklamasi : Penghargaan Rolling Stone untuk Gerakan Bali Tolak Reklamasi - cc @RollingStoneINA
SarinaIDN 2015-06-02 #BaliTolakReklamasi : Penghargaan Rolling Stone untuk Gerakan Bali Tolak Reklamasi - #Greenspiration cc @MongabayID

Topik ketiga pada peride terakhir juga menyinggung keberadaan desa adat yang juga dapat dikategorikan sebagai representasi budaya masyarakat bali. Dalam konteks ini, dukung desa adat terhadap BTR membuat gerakan bukan hanya menyentuh generasi milenial yang aktif di media sosial, tetapi juga masyarakat secara kesulurhan di Bali.

user date tweets
MCAOps 2015-06-13 #BaliTolakReklamasi : Desa Adat Tanjung Benoa Konsisten Tolak Reklamasi - via @ForumHijau_ID
SarinaIDN 2015-06-13 #BaliTolakReklamasi : Desa Adat Tanjung Benoa Konsisten Tolak Reklamasi - cc : @Infobencana @GreenpeaceID
SarinaIDN 2015-06-13 #BaliTolakReklamasi : Desa Adat Tanjung Benoa Konsisten Tolak Reklamasi - cc : @MongabayID @WalhiBali
SarinaIDN 2015-06-13 #BaliTolakReklamasi : Desa Adat Tanjung Benoa Konsisten Tolak Reklamasi - cc : @ForBALI13 @Gendovara
SarinaIDN 2015-06-13 #BaliTolakReklamasi : Desa Adat Tanjung Benoa Konsisten Tolak Reklamasi - cc : @SID_Official @JRX_SID

Berdasarkan penuturan partisipan penelitian, revitalisasi merupakan salah satu propaganda pendukung reklamasi. Pada periode tiga ini kita juga dapat melihat bahwa revitalisasi dianggap sebagai kedok. Beberapa twit tentang hal tersebut adalah sebagai berikut.

user date tweets
AlamDewataBand 2015-12-23 #Marjinal #TaringBabi #BaliTolakReklamasi #balitolakreklamasiberkedokrevitalisasi …
novapolosh_ 2015-12-19 Tetep #balitolakreklamasi #balitolakreklamasiberkedokrevitalisasitelukbenoa …
dewi_gottin 2015-12-15 #BaliTolakReklamasi #tolakreklamasiberkedokrevitalisasi
pt_diantara 2015-12-13 #balitolakreklamasi #balitolakreklamasiberkedokrevitalisasi #bali #forbali #forbali13
ForBALI13 2015-12-13 Karena #BermusikAdalahMelawan Mom Called Killer untuk #balitolakreklamasi #tolakreklamasiberkedokrevitalisasi
dERa_Revolt 2015-12-13 Bali extreme Drum #balitolakreklamasi #tolakreklamasiberkedokrevitalisasi @ForBALI13
dERa_Revolt 2015-12-13 #balitolakreklamasi #Tolakreklamasiberkedokrevitalisasi
smilingdiana 2015-12-12 @Moko_Ke gerakan #BaliTolakReklamasi Teluk Benoa menolak proyek urug dgn kedok revitalisasi Teluk #climateart
elvis_judit 2015-12-01 Berdo ’a bergerak dan lawan !!!#Tolakreklamasiberkedokrevitalisasi #BaliTolakReklamasi @SID_Official @JRX_SID
becomemon 2015-11-25 Bersama Bupati Klungkung #balitolakreklamasi #tolakreklamasiberkedokrevitalisasitelukbenoa …

Terakhir, di sini kita juga dapat mengetahui bahwa setiap artis atau band yang main di konser BTR tidak dibayar sebagaimana di nyatakan oleh salah satu penggeraknya (JRX_SID) atau jerink yang juga merupakan drumer band SID.

# A tibble: 36 x 2
   date       tweets                                                      
   <date>     <chr>                                                       
 1 2014-09-28 Oknum oknum polisi yg di bali yg sering bubarkan konser2 to~
 2 2014-09-25 "Mana mau dia \"@JRX_SID : Mas @AHMADDHANIPRAST mau main di~
 3 2014-09-18 "Mas Dhani baca ,Jrx minta tolong tuh :D \"@JRX_SID : Mas @~
 4 2014-09-18 @JRX_SID Mas @AHMADDHANIPRAST mau main di konser #BaliTolak~
 5 2014-09-18 "Jelas mikir2 dulu :) \"@JRX_SID : Mas @AHMADDHANIPRAST mau~
 6 2014-09-18 Ayo nyalinya mana mas !@JRX_SID : Mas @AHMADDHANIPRAST mau ~
 7 2014-09-18 "Udh gratis ,Resiko bahaya pulak ,Ini bru Laki \"@JRX_SID :~
 8 2014-09-18 "Mana mau dia :) \"@JRX_SID : Mas @AHMADDHANIPRAST mau main~
 9 2014-09-18 Gak ! @JRX_SID : Mas @AHMADDHANIPRAST mau main di konser #B~
10 2014-09-18 "Impossible \"@JRX_SID : Mas @AHMADDHANIPRAST mau main di k~
# ... with 26 more rows
date tweets
2014-09-28 Oknum oknum polisi yg di bali yg sering bubarkan konser2 tolak reklamasi itu , kalian dibayar berapa sih ? #BaliTolakReklamasi
2014-09-25 Mana mau dia “@JRX_SID : Mas @AHMADDHANIPRAST mau main di konser #BaliTolakReklamasi ? Tapi ga dibayar dan berisiko dimusuhi oleh penguasa
2014-09-18 Mas Dhani baca ,Jrx minta tolong tuh :D “@JRX_SID : Mas @AHMADDHANIPRAST mau main di konser #BaliTolakReklamasi ? Tapi ga dibayar dan berisiko
2014-09-18 @JRX_SID Mas @AHMADDHANIPRAST mau main di konser #BaliTolakReklamasi ? Tapi ga dibayar dan berisiko dimusuhi oleh penguasa /investor . Berani ?
2014-09-18 Jelas mikir2 dulu :) “@JRX_SID : Mas @AHMADDHANIPRAST mau main di konser #BaliTolakReklamasi ? Tapi ga dibayar dan berisiko dimusuhi
2014-09-18 Ayo nyalinya mana mas !@JRX_SID : Mas @AHMADDHANIPRAST mau main di konser #BaliTolakReklamasi ? Tapi ga dibayar dan berisiko dimusuhi penguasa
2014-09-18 Udh gratis ,Resiko bahaya pulak ,Ini bru Laki “@JRX_SID : Mas @AHMADDHANIPRAST mau main di konser #BaliTolakReklamasi ? Tapi ga dibayar dan ber
2014-09-18 Mana mau dia :) “@JRX_SID : Mas @AHMADDHANIPRAST mau main di konser #BaliTolakReklamasi ? Tapi ga dibayar dan berisiko dimusuhi oleh penguasa
2014-09-18 Gak ! @JRX_SID : Mas @AHMADDHANIPRAST mau main di konser #BaliTolakReklamasi ? Tapi ga dibayar dan berisiko dimusuhi oleh penguasa /investor .
2014-09-18 Impossible “@JRX_SID : Mas @AHMADDHANIPRAST mau main di konser #BaliTolakReklamasi ? Tapi ga dibayar dan berisiko dimusuhi oleh penguasa

Bagi mereka yang mau main di konser, resiko bukan hanya harus modal sendiri tapi juga dimusuhi, dan bahkan mungkin diputuskan kontraknya. Namun karena itu pula gerakan ini dapat dikatakan sebagai gerakan organik. Gerakan seperti ini “mungkin” hanya bisa muncul karena adanya kesadaran dengan tujuan gerakan.

5 Penutup

Sebagai penutup saya ingin kembali mereview temuan dari twit yang didapat dengan dua parameter pencarian, yaitu tagar balinotforsale dan balitolakreklamsi. Dua parameter tersebut menghasilkan 82.616 twit dan setelah dilakukan pengecekan duplikasi berdasarkan konten twitnya didapat 69.013 yang unik (bukan duplicate). Jumlah twit tersebut dikirim oleh 21.827 username dan melibatkan 31.796 username yang berbeda.

Akun twit yang paling banyak mengirim twit dengan tagar BTR adalah akun ForBALI13, dan akun yang paling sering terlibat (berada) dalam twit adalah akun JRX_SID. Dua akun tersebut dimiliki oleh kelompok dan individu yang juga menjadi penggerak gerakan. Akun ForBALI13 merupakan sebuah forum utama masyarakat penolak reklamasi. Sedangkan JRX_SID adalah satu pendukung gerakan yang juga cukup vokal menyuarakan kepentingan masyarakat penolak reklamasi baik di media sosial maupun arus utama.

Gerakan BTR di media sosial terbantu oleh keberadaan akun-akun yang sudah lebih dulu populer dan memiliki cukup banyak pengikut (celebrity). Namun berdasarkan twit salah satu dari selebritas tersebut, kemungkinan tidak semua mau ikut serta dalam mendukung gerakan BTR, karena ada resiko baik profesional seperti pembatalan kontrak maupun individual seperti dibenci publik. Walaupun demikian sampai saat ini gerakan tersebut telah bertahan selama hampir 5 tahun dan memiliki beberapa pola gerakan penolakan yang rutin dilakukan.

Pertama, aksi demonstrasi. Aksi demonstrasi telah dilakukan beberapa kali, di antara yang tertangkap di media sosial dan kemungkinan juga menjadi salah satu aksi yang terbesar adalah demo di kantor DPRD dan di Gubernur Bali. Selain melakukan aksi demonstrasi di dunia nyata, mereka juga membagikan pengalaman dan atau opininya tentang tuntutan dari aksi tersebut di dunia maya. Oleh karena itu pula studi terhadap media sosial juga dapat memberikan gambaran tentang “sebuah cara baru menjadi masyarakat.” Kedua, Parade budaya, misalnya dengan melaksanakan dan atau mengikuti festival layang-layang dan juga kegiatan budaya lainnya. Ketiga, konser mini yang rutin dilaksanakan dengan melibatkan banyak musisi baik lokal maupun nasional.

Melalui aksi-aksi di atas gerakan BTR yang saat ini juga didukung oleh “Desa Adat” menyuarakan beberapa hal. Pada periode pertama, yaitu periode sebelum perpres 51 di terbitkan mereka selain ada 3 aksi konser dan juga demonstrasi, di media sosial mereka cenderung mengajak dan mensosialisasikan gerakan. Oleh karena itu periode 1 ini dapat dianggap sebagai fase emergence. Fase ini ditandai dengan adanya pengungkapan keresahan masing-masing individu yang kemudian melembaga dan menjadi kesadaran bersama untuk menolak dan melakukan aksi penolakan.

Pada periode kedua, berdasarkan twit-twit yang diunggah oleh warga net dapat dipahami bahwa mereka sudah mulai mengarahkan tuntutan pada pihak-pihak tertentu. Dalam konteks ini, pihak yang mereka tuntut di antaranya adalaha pemerintah daerah dan juga pemerintah pusat dengan kementrian yang terkait. Selain itu, pada periode kedua mereka juga sudah memastikan bahwa mereka cukup matang sebagai sebuah gerakan. Oleh kerana itu, mereka juga sering merespons pihak-pihak yang diduga mendukung dan mendengungkan revitalisasi. Salah satunya adalah kedatangan Cristiano dan juga perang baliho.

Pada Periode ketiga, gerakan memastikan bahwa menolak reklamasi merupakan sebuah sikap dan akan terus berlanjut hingga tuntutan mereka dipenuhi. Oleh karena itu, selain topik-topik tentang kegiatan yang sudah rutin dilakukan pada periode tiga ini juga ditemui topik tentang konser yang dilakukan di daerah lain, prestasi gerakan, dan dukungan, dan pernyataan sikap.

LS0tCnRpdGxlOiAiTGFwb3JhbiAyIC0gVHdpdCB0ZW50YW5nIFRlbHVrIEJlbnVhIgphdXRob3I6ICJVamFuZyBmYWhtaSIKZGF0ZTogIjQvMzAvMjAxOCIKb3V0cHV0OgogIHdvcmRfZG9jdW1lbnQ6CiAgICB0b2M6IHllcwogICAgdG9jX2RlcHRoOiAnMycKICBodG1sX25vdGVib29rOgogICAgbnVtYmVyX3NlY3Rpb25zOiB5ZXMKICAgIHRvYzogeWVzCiAgICB0b2NfZGVwdGg6IDMKICAgIHRvY19mbG9hdDogeWVzCi0tLQoKYGBge3Igc2V0dXAsIGluY2x1ZGU9RkFMU0V9CmtuaXRyOjpvcHRzX2NodW5rJHNldChlY2hvID0gRkFMU0UsIHdhcm5pbmcgPSBGQUxTRSwgbWVzc2FnZSA9IEZBTFNFLCBmaWcucG9zID0gImgiKQoKc2V0LnNlZWQoMjAxOCkKYGBgCgojIFBlbmRhaHVsdWFuCkJlcmRhc2Fya2FuIGhhc2lsIGVrc3Bsb3Jhc2kgMSBwYWRhIHR3aXQgeWFuZyBtZW1lbnRpb24gYWt1biBAQ2hhbmdlT3JnX0lEIGRpa2V0YWh1aSBiYWh3YSBzYWxhaCBzYXR1IHRvcGlrIHlhbmcgbWVuamFkaSB0b3BpayBwZW1iYWhhc2FuIHdhcmdhIG5ldCBhZGFsYWggdGVudGFuZyBUZWx1ayBCZW5vYS4gVG9waWsgdGVyc2VidXQgYmVya2FpYXRhbiBkZW5nYW4gcGVub2xha2FuIHdhcmdhIG5ldCB0ZXJoYWRhcCByZW5jYW5hIHJla2xhbWFzaSB0ZWx1ayBiZW51YSBkaSBCYWxpLiBPbGVoIGthcmVuYSBpdHUgZGFsYW0gZWtzcGxvcmFzaSAyIGluaSBkYXRhIHlhbmcgZGlndW5ha2FuIGFkYWxhaCB0d2l0IHlhbmcgbWVtYmFoYXMgdGVudGFuZyByZWtsYW1hc2kgdGVyc2VidXQuIFR3aXQgZGlrdW1wdWxrYW4gZGVuZ2FuIG1ldG9kZSBzZW1pIGF1dG9tYXRpYyBzY3JhcHBpbmcgZGVuZ2FuIGR1YSBwYXJhbWV0ZXIgeWFpdHUgdGFnYXIgKiojYmFsaXRvbGFrcmVrbGFtYXNpKiogZGFuICoqYmFsaW5vdGZvcnNhbGUqKi4gZHVhIHBhcmFtZXRlciB0ZXJzZWJ1dCBtZW5naGFzaWxrYW4gdHdpdCBzZWJhbnlhayAqKjcyLjY0MCoqIGRhbiAqKjkuOTc0KiogdHdpdC4gU2V0ZWxhaCBkaWxha3VrYW4gcGVuZ2VjZWthbiBrb250ZW4gZHVwbGlrYXQgZGlkYXBhdCB0d2l0IHNlcGVydGkgZGFwYXQgZGlsaWhhdCBwYWRhIHRhYmVsIGRpIGJhd2FoIGluaS4gSnVtbGFoIHR3aXQgdGVyc2VidXQga2VtdWRpYW4gYWthbiBkaWd1bmFrYW4gZGFsYW0gbGFwb3JhbiBpbmkuIAoKYGBge3J9CiMgUnVuaW5nIFJKYXZhCmlmIChTeXMuaW5mbygpWydzeXNuYW1lJ10gPT0gJ0RhcndpbicpIHsKICBsaWJqdm0gPC0gcGFzdGUwKHN5c3RlbTIoJy91c3IvbGliZXhlYy9qYXZhX2hvbWUnLHN0ZG91dCA9IFRSVUUpWzFdLCcvanJlL2xpYi9zZXJ2ZXIvbGlianZtLmR5bGliJykKICBtZXNzYWdlIChwYXN0ZTAoJ0xvYWQgbGlianZtLmR5bGliIGZyb206ICcsbGlianZtKSkKICBkeW4ubG9hZChsaWJqdm0pCn0KCmxpYnJhcnkodGlkeXZlcnNlKQpsaWJyYXJ5KHRpZHl0ZXh0KQpsaWJyYXJ5KGdncGxvdDIpCmxpYnJhcnkoc3RyaW5ncikKbGlicmFyeShsdWJyaWRhdGUpCmxpYnJhcnkodG9waWNtb2RlbHMpCmxpYnJhcnkodG0pCmxpYnJhcnkoUldla2EpCmxpYnJhcnkocmVzaGFwZTIpCmxpYnJhcnkod29yZGNsb3VkKQpsaWJyYXJ5KGlncmFwaCkKbGlicmFyeShnZ3JhcGgpCmxpYnJhcnkocXVhbnRlZGEpCmxpYnJhcnkoZ29vZ2xlZHJpdmUpCmxpYnJhcnkodGV4dGNsZWFuKQpsaWJyYXJ5KGthYmxlRXh0cmEpCmBgYAoKCiMgRGF0YQoKYGBge3J9CmlkMCA8LSAiMVJBYWxUTFlocHByRENwRV93b3M0OHltdWZOOG1qTUdfIiAjIHR3aXQtbWVudGlvbi1jaGFuZ2UuY3N2IAppZDEgPC0gIjExV1RlZGFhRTc5RXRUNHZPR05VMnZmRzd4Z2NMdEpjRSIgIyB0d2l0LXRhZ2FyLWJhbGl0b2xha3Jla2xhbWFzaS5jc3YKaWQyIDwtICIxOTg0am1GdXI2M1BtWXZvQzhBYjZQMml3ZlVRWVZwNzEiICMgdHdpdC10YWdhci1iYWxpbm90Zm9yc2FsZS5jc3YKaWQzIDwtICIxUHcwV1pJdW91OWJ3N25vZzF4Q0pxT1ZaRFItVENrODgiICMgY2xlYW5lZCB1c2VybmFtZV9hbGwgCgp0d2l0X3RvX2NoYW5nZSA8LSByZWFkX2NzdihzcHJpbnRmKCJodHRwczovL2RvY3MuZ29vZ2xlLmNvbS91Yz9pZD0lcyZleHBvcnQ9ZG93bmxvYWQiLCBpZDApKQpidHJfcmF3IDwtIHJlYWRfY3N2KHNwcmludGYoImh0dHBzOi8vZG9jcy5nb29nbGUuY29tL3VjP2lkPSVzJmV4cG9ydD1kb3dubG9hZCIsIGlkMSkpCmJuc19yYXcgPC0gcmVhZF9jc3Yoc3ByaW50ZigiaHR0cHM6Ly9kb2NzLmdvb2dsZS5jb20vdWM/aWQ9JXMmZXhwb3J0PWRvd25sb2FkIiwgaWQyKSkKbmV0X3RlbHVrQmVudWEgPC0gcmVhZF9jc3Yoc3ByaW50ZigiaHR0cHM6Ly9kb2NzLmdvb2dsZS5jb20vdWM/aWQ9JXMmZXhwb3J0PWRvd25sb2FkIiwgaWQzKSkKYGBgCgoKYGBge3J9CnRiX3JhdyA8LSBiaW5kX3Jvd3MoYnRyX3JhdywgYm5zX3JhdykKCnRiX3JhdyR0d2VldHMgPC0gcmVwbGFjZV93aGl0ZSh0Yl9yYXckdHdlZXRzKSAjIHJlcGxhY2luZyB3aGl0ZSBzcGFjZQp0Yl9yYXckdHdlZXRzIDwtIHJlcGxhY2Vfbm9uX2FzY2lpKHRiX3JhdyR0d2VldHMsIHJlbW92ZS5ub25jb252ZXJ0ZWQgPSBUUlVFKQoKIyBwcmludCBpcyBkdXBsaWNhdGUKdGJfcmF3ICU+JQogIGdyb3VwX2J5KGlzX2R1cGxpY2F0ZSkgJT4lCiAgY291bnQoaXNfZHVwbGljYXRlKSAlPiUKICBzdW1tYXJpc2UoanVtbGFoID0gbikgJT4lCiAga2FibGUoKSAlPiUKICBrYWJsZV9zdHlsaW5nKCkKYGBgCgpEYXJpIHRvdGFsICoqODIuNjE2KiogdHdpdCB0ZXJkYXBhdCAqKjEzLjYwMyoqIHR3aXQgeWFuZyBtZXJ1cGFrYW4gdHdpdCBkdXBsaWthdCBhdGF1IG1lbWlsaWtpIGtvbnRlbiB5YW5nIHNhbWEuIE9sZWgga2FyZW5hIGl0dSwgZGFsYW0gZWtzcGxvcmFzaSBzZWxhbmp1dG55YSBoYW55YSBha2FuIG1lbmdndW5ha2FuICoqNjkuMDEzKiogdHdpdC4gRGlzdHJpYnVzaSB0d2l0IHRlcnNlYnV0IGRhcGF0IGRpbGloYXQgcGFkYSBnYW1iYXIgZGkgYmF3YWggaW5pLgoKYGBge3IsIGZpZy5wb3M9J2gnLCBmaWcuY2FwPSJEaXN0cmlidXNpIFR3aXQgeWFuZyBtZW5nZ3VuYWthbiB0YWdhciBibnMgYXRhdSBidHIifQp0Yl9yYXcgPC0gdGJfcmF3ICU+JQogIGZpbHRlcihpc19kdXBsaWNhdGUgPT0gRkFMU0UpCgp0Yl9yYXcgJT4lCiAgZ3JvdXBfYnkoZGF0ZSkgJT4lIGNvdW50KGRhdGUpICU+JSBhcnJhbmdlKGRhdGUpICU+JQogIGdncGxvdChhZXMoeCA9IGRhdGUsIHkgPSBuKSkgKyBnZW9tX2xpbmUoc2hvdy5sZWdlbmQgPSBGQUxTRSkgKyAKICBsYWJzKHggPSAiVGFodW4iLCB5ID0gIkp1bWxhaCBUd2l0IikKYGBgCgpUd2l0IHlhbmcgZGlndW5ha2FuIGRhbGFtIGxhcG9yYW4gbWVydXBha2FuIHR3aXQgeWFuZyBkaXVuZ2dhaCBkZW5nYW4gdGFnYXIgI2JhbGl0b2xha3Jla2xhbWFzaSBkYW4gI2JhbGlub3Rmb3JzYWxlIGRhbGFtICoqNi41IHRhaHVuKiogdGVyYWtoaXIuIFR3aXQgcGVydGFtYSBkaXVuZ2dhaCBwYWRhICoqMjAxMi0wNi0wNSoqLCBzZW1lbnRhcmEgdHdpdCB0ZXJha2hpciBkaXVuZ2dhaCBwYWRhICoqMjAxOC0wMy0yNyoqLgoKVHdpdCBkaWJhZ2kgbWVuamFkaSB0aWdhIHBlcmlvZGUgd2FrdHUgc2VzdWFpIGRlbmdhbiBhbHVyIGtlamFkaWFuIGRpIGRhcmF0LiBQZXJpb2RlIDEgYmVyYXNhbCBkYXJpIHR3aXQgeWFuZyBkaXVuZ2dhaCBkYXJpIDIwMTItMDYtMDUgc2FtcGFpIDIwMTQtMDMtMzEuIFBlcmlvZGUgMiBkYXJpIDIwMTQtMDQtMDEgc2FtcGFpIDIwMTQtMDgtMzEuIFBlcmlvZGUgMyBkYXJpIDIwMTQtMDktMDEgc2FtcGFpIDIwMTgtMDMtMzEuIAoKYGBge3J9CnRiX3JhdyAlPiUKICBncm91cF9ieShwYXJhbWV0ZXIpICU+JQogIGNvdW50KHBlcmlvZGUpICU+JQogIGthYmxlKCkgJT4lCiAga2FibGVfc3R5bGluZygpCmBgYAoKIyBBbmFsaXNpcyBBa3RvcgpBa3RvciBkYWxhbSB0d2l0IG1lcnVwYWthbiB1c2VybmFtZSBhdGF1IG5hbWEgYWt1biB5YW5nIHRlcmRhcGF0IGRhbGFtIHR3aXR0ZXIuIEFrdG9yIGRpYmVkYWthbiBtZW5qYWRpLCB5YWl0dSBha3RvciBzZWJhZ2FpIHBlbmdpcmltIHR3aXQgeWFuZyBzZWxhbmp1dG55YSBkaXNlYnV0IHBlbmdpcmltIGRhbiBha3RvciB5YW5nIHRlcmxpYmF0LiBBa3RvciB5YW5nIHRlcmxpYmF0IGp1Z2EgZGFwYXQgbWVuamFkaSBha3RvciBwZW5naXJpbSB0d2l0LCBuYW11biBkaSBzaW5pIGFrdG9yIHRlcmxiYXQgZGlkYXBhdCBkYXJpIGJvZHkgdHdpdCB5YW5nIHBvc2lzaW55YSBiZXJhZGEgc2V0ZWxhaCBha3VuIHBlcnRhbWEgeWFuZyBkaWFuZ2dhcCBzZWJhZ2FpIHBlbmdpcmltLiAKCiMjIEFrdW4gcGVuZ2lyaW0KQWt1biBwZW5naXJpbSB0d2l0IHlhbmcgbWVuZ2FuZHVuZyBkdWEgdGFnYXIgZGFwYXQgZGlsaWhhdCBwYWRhIGdhbWJhciBkaSBiYXdhaCBpbmkuIERpIG1hbmEgZGFsYW0gZ2FtYmFyIGRhcGF0IGRpbGloYXQgYWt1biBgRm9yQkFMSTEzYCBtZW5qYWRpIHBlbmdpcmltIHRlcmJhbnlhay4gQWt1biB0ZXJzZWJ1dCBtZXJ1cGFrYW4gYWt1biByZXNtaSBnZXJha2FuLCBzZWJhZ2FpbWFuYSBkaWtvbmZpcm1hc2kgb2xlaCBrb3JkaW5hdG9yIGdlcmFrYW4uCgpgYGB7ciwgZmlnLmNhcD0iMjAgQWt1biBwZW5naXJpbSB0d2l0IHRlcmJhbnlhayJ9CnRiX3JhdyAlPiUKICBmaWx0ZXIoaXNfZHVwbGljYXRlID09IEZBTFNFKSAlPiUKICBjb3VudCh1c2VyLCBzb3J0ID0gVFJVRSkgJT4lCiAgZmlsdGVyKCFzdHJfZGV0ZWN0KHVzZXIsICdDaGFuZ2VPcmdfSUQnKSkgJT4lCiAgaGVhZChuID0gMjApICU+JQogIGdncGxvdChhZXMoeCA9IHJlb3JkZXIodXNlciwgbiksIHkgPSBuKSkgKyBjb29yZF9mbGlwKCkgKwogIGdlb21fY29sKHNob3cubGVnZW5kID0gRkFMU0UpICsgCiAgbGFicyh4ID0gIlVzZXJuYW1lIFR3aXR0ZXIiLCB5ID0gIkp1bWxhaCBUd2l0IHlhbmcgZGlraXJpbSIpCmBgYApTZWxhaW4gYWt1biBgRm9yQkFMSTEzYCBqdWdhIHRlcmRhcGF0IGJlYmVyYXBhIGFrdW4gbGFpbiB5YW5nIGN1a3VwIGJhbnlhayBtZW5naXJpbWthbiB0d2l0IHRlbnRhbmcgdG9sYWsgcmVrbGFtYXNpIHRlbHVrIGJlbm9hLiBBa3VuLWFrdW4gdGVyc2VidXQganVnYSByYXRhLXJhdGEgbWVtaWxpa2kgZm9sbG93ZXIgY3VrdXAgYmFueWFrLiBIYWwgaW5pIG1lbWJ1YXQgdHdpdCB0ZW50YW5nIHRvbGFrIHJla2xhbWFzaSBtZW55ZWJhciBjdWt1cCBjZXBhdC4gSGFsIGluaSBqdWdhIG1lbmphZGkgc2FsYWggc2F0dSBzdHJhdGVnaSBnZXJha2FuIGRlbmdhbiBtZWxpYmF0a2FuICJhcnRpcyIgYXRhdSBha3RvciB5YW5nIHRlbGFoIGxlYmloIGR1bHUgcG9wdWxlci4gU2ViYWdhaSBjb250b2gsIEpSWF9TSUQgeWFuZyBqdWdhIG1lcnVwYWthbiBhbmdnb3RhIGJhbmQgU0lEIG1lbWlsaWtpIDM2NCByaWJ1IGxlYmloIGZvbGxvd2VyIFR3aXR0ZXIuIAoKIyMgQWt1biB0ZXJsaWJhdApHYW1iYXIgZGkgYmF3YWggaW5pIG1lbnVuanVra2FuIGFrdW4tYWt1biB5YW5nIHRlcmxpYmF0IGF0YXUgeWFuZyBiZXJhZGEgZGFsYW0gdHdpdCAodGVybWFzdWsgYWt1biBwZW5naXJpbSkuIERpIG1hbmEgc2VsYWluIGFrdW4tYWt1biB5YW5nIGp1Z2EgbXVuY3VsIGRhbGFtIGRhZnRhciBwZW5naXJpbSB0d2l0IGp1Z2EgdGVyZGFwYXQgYWt1biBsYWluIHlhbmcganVnYSBjdWt1cCBwb3B1bGVyIHNlcGVydGkgYWt1biBgQFNCWXVkaG95b25vYCBkYW4gYEBqb2tvd2lgLiAKCmBgYHtyLCBmaWcuY2FwPSIyMCBBa3VuIHlhbmcgcGFsaW5nIHNlcmluZyBkaW1lbnRpb24ifQpuZXRfdGVsdWtCZW51YSAlPiUKICB1bm5lc3RfdG9rZW5zKHVzZXIsIERhdGEsIHRvX2xvd2VyID0gRkFMU0UpICU+JQogIGNvdW50KHVzZXIsIHNvcnQgPSBUUlVFKSAlPiUKICBmaWx0ZXIoIXN0cl9kZXRlY3QodXNlciwgJ0NoYW5nZU9yZ19JRCcpKSAlPiUKICBoZWFkKG4gPSAyMCkgJT4lCiAgZ2dwbG90KGFlcyh4ID0gcmVvcmRlcih1c2VyLCBuKSwgeSA9IG4pKSArIGNvb3JkX2ZsaXAoKSArCiAgZ2VvbV9jb2woc2hvdy5sZWdlbmQgPSBGQUxTRSkgKyAKICBsYWJzKHggPSAiVXNlcm5hbWUgVHdpdHRlciIsIHkgPSAiSnVtbGFoIEtlYmVyYWRhYW4gVXNlcm5hbWUgZGFsYW0gVHdpdCIpCmBgYAoKR2FtYmFyIGRpIGF0YXMgbWVudW5qdWtrYW4gYmFod2EgZGFsYW0gdHdpdCB0ZXJkYXBhdCBkdWEga2Vsb21wb2sgYWt1biB5YW5nIHBvcGxlci4gKlBlcnRhbWEqIGFrdW4geWFuZyBqdWdhIG11bmN1bCBkYWxhbSBkYWZ0YXIgcGVuZ2lyaW0gYXRhdSBqdWdhIGRhcGF0IGRpa2F0ZWdvcmlrYW4gc2ViYWdhaSBwZW5kdWt1bmcgZ2VyYWthbi4gKktlZHVhKiBrZWxvbXBvayBha3VuIHlhbmcgbWVuamFkaSAic2FzYXJhbiIgZGFyaSBnZXJha2FuLCB0ZXJtYXN1ayBha3VuIG1lbnRlcmkgU3VzaSAobWVudGVyaSBrZWxhdXRhbiBkYW4gbGluZ2t1bmdhbiBoaWR1cCkgeWFuZyBiZXJrYWl0YW4gZGVuZ2FuIHBlbWJlcmlhbiBpemluIHJla2xhbWFzaS4gQWRhbnlhIGR1YSBrZWxvbXBvayB0ZXJzZWJ1dCBkYXBhdCBtZW5naW5maXJtYXNpIGFzdW1zaSB0ZW50YW5nIHBlbmdndW5hYW4gbWVkaWEgc29zaWFsIHNlYmFnYWkgbWVkaWEga29tdW5pa2FzaSBhbnRhcmEgbWFzeWFyYWthdCBkZW5nYW4gcGVtZXJpbnRhaC4gRGFsYW0ga29udGVrcyBnZXJha2FuLCBoYWwgdGVyc2VidXQganVnYSBtZW5qYWRpIHNhbGFoIHNhdHUgcGVueXVhcmFhbiBrZXBlbnRpbmdhbiBkYW4gInByZWZlcmVuc2kiIHB1Ymxpay4KCiMjIFNvY2lhbCBuZXR3b3JrIGFuYWx5c2lzCk5ldHdvcmsgYW5hbHlzaXMgZGlsYWt1a2FuIG1lbGFsdWkgcGVyYW5na2F0IGx1bmFrIGdlcGhpLCB0ZXJtYXN1ayBwZXJoaXR1bmdhbiBrb21wb25lbiBkYXJpIG5ldHdvcmsgc2VwZXJ0aSBtb2R1bGFyaXR5LCBkYW4gY2VudHJhbGl0eS4gRGkgbWFuYSBgbm9kZXNgIG1lcnVwYWthbiB1c2VybmFtZSBUd2l0dGUgZGFuIGBlZGdlc2AgbWVydXBha2FuIGtlYmVyYWRhYW4gZGFsYW0gdHdpdCB5YW5nIHNhbWEgYXRhdSBgY29vY2N1cnJhbmNlYC4gCiFbTmV0d29yayBUZWx1ayBCZW5vYV0oL1ZvbHVtZXMvbXlkYXRhL1JTdHVkaW8vdmlydHVhbENpdGl6ZW5zL3ZjLXByb2ozL3dyYW5nbGVkIGRhdGEgcHJvai0zL3RlbHVrIGJlbm9hIG5ldHdvcmsucG5nKQoqKktldGVyYW5nYW46KiogV2FybmEgZGFsYW0gZ2FtYmFyIGRpYnVhdCBiZXJkYXNhcmthbiAqbW9kdWxhcml0eSBjbGFzcyogZGFuIGJlc2FyIG5vZGVzIGRpYnVhdCBiZXJkYXNhcmthbiAqZWlnZW52ZWN0b3IgY2VudHJhbGl0eSouIEdhbWJhciBoYW55YSBtZW5hbXBpbGthbiBub2RlcyBkZW5nYW4gbWluaW11bSBkZWdyZWUgMjAuIAoKR2FtYmFyIGRpIGJhd2FoIGluaSBtZW51bmp1a2thbiBiYWh3YSBwZW5nZ3VuYSB0d2l0dGVyIHRpZGFrIG1lbWlsaWtpIHBlcmJlZGFhbiB5YW5nIGN1a3VwIG1lbmNvbG9rIGthcmVuYSBtYXNpbmctbWFzaW5nIGFrdW4gYmVyYWRhIGN1a3VwIGJlcmRla2F0YW4gc2F0dSBzYW1hIGxhaW4uIERpIHNhdHUgc2lzaSBoYWwgdGVyc2VidXQgZGFwYXQgbWVuamFkaSBpbmRpa2F0b3IgcG9zaXRpZiB5YW5nIG1lbnVuanVra2FuIGFkYW55YSBrZXNhbWFhbiBwYW5kYW5nYW4gdGVudGFuZyByZWtsYW1hc2kuIERpIHNpc2kgbGFpbiwga2ViZXJhZGFhbm55YSB5YW5nIGN1a3VwIGJlcmRla2F0YW4gdGVyc2VidXQganVnYSBtZW5qYWRpIHNhbGFoIHNhdHUgaW5kaWthdG9yIGFkYW55YSBzYXR1IGFrdG9yIGt1bmNpIHlhbmcgY3VrdXAgZG9taW5hbi4gSGFsIHRlcnNlYnV0IGJ1a2FuIGhhbCB5YW5nIGJ1cnVrLCBuYW11biBrZXRpa2EgdGVyamFkaSBha3VuIHRlcnNlYnV0IGJlcmhlbnRpIGRhcGF0IG1lbWVuZ2FydWhpIGdlcmFrYW4gc2VjYXJhIGtlc2VsdXJ1aGFuLiBHYW1iYXIgYmVyaWt1dCBtZW51bmp1a2thbiBwb3Npc2kgMTAgYWt1biBkZW5nYW4gYGVpZ2VuY2VudHJhbGl0eWAgdGVydGluZ2dpLgoKYGBge3J9CmlkNCA8LSAiMVdJbVl4ZlNSOE56dXRmdjhaVjc0WGFfTzJHVFoyenllIiAjIG5ldHdvcmsgYW5hbHlzaXMKbmV0X2FuYWx5c2lzIDwtIHJlYWRfY3N2KHNwcmludGYoImh0dHBzOi8vZG9jcy5nb29nbGUuY29tL3VjP2lkPSVzJmV4cG9ydD1kb3dubG9hZCIsIGlkNCkpCgpuZXRfYW5hbHlzaXMgJT4lCiAgc2VsZWN0KExhYmVsLCBlaWdlbmNlbnRyYWxpdHkpICU+JQogIGFycmFuZ2UoZGVzYyhlaWdlbmNlbnRyYWxpdHkpKSAlPiUKICBoZWFkKG4gPSAxMCkgJT4lCiAgZ2dwbG90KGFlcyhyZW9yZGVyKExhYmVsLCBlaWdlbmNlbnRyYWxpdHkpLCBlaWdlbmNlbnRyYWxpdHkpKSArIAogIGNvb3JkX2ZsaXAoKSArIGdlb21fY29sKCkgKyAKICBsYWJzKHggPSAiTmFtYSBBa3VuIiwgeSA9ICJlaWdlbmNlbnRyYWxpdHkiKQpgYGAKClRpZ2EgYWt1biBwZXJ0YW1hIGRhbGFtIGdhbWJhciBkaSBhdGFzIG1lcnVwYWthbiBha3VuIGRlbmdhbiBlaWdlbmNlbnRyYWxpdHkgdGVydGluZ2dpIGRhbGFtIGphcmluZ2FuLiBBcnRpbnlhLCBha3VuLWFrdW4gdGVyc2VidXQgbWVtaWxpa2kga2VjZW5kZXJ1bmdhbiB1bnR1ayB0ZXJodWJ1bmcgZGVuZ2FuIGFrdG9yLWFrdG9yICh1c2VybmFtZSkgbGFpbiB5YW5nIGp1Z2EgcGVudGluZyAqKihsaWhhdDoga29uc2VwIGVpZ2VuY2VudHJhbGl0eSkqKi4gU2VoaW5nZ2Egc2VjYXJhIG1hdGVtYXRpcyBqdWdhIGRhcGF0IGRpc2ltcHVsa2FuIGJhaHdhIGFrdW4gdGVyc2VidXQgbWVtaWxpa2kgcGVuZ2V0YWh1YW4gZGFuIG11bmdraW4gbWVuamFkaSBwZW5nZ2VyYWsgZGFsYW0gamFyaW5nYW4gZ2VyYWthbiBiYWxpIHRvbGFrIHJla2xhbWFzaS4gU2VtZW50YXJhIGR1YSBha3VuIGRpIGJhd2FobnlhIHlhbmcganVnYSBkaWtldGFodWkgbWVydXBha2FuIGFrdW4gcmVzbWkgbWlsaWsgbWFudGFuIHByZXNpZGVuIGRhbiBwcmVzaWRlbiBzYWF0IGluaSBtZW5naW5kaWthc2lrYW4gYmFod2Ega2FzdXMgcGVub2xha2FuIHJla2xhbWFzaSBtZW5jb2JhIHVudHVrIGRpYmF3YSBtZW5qYWRpIGtldGluZ2thdCB0ZXJ0aW5nZ2kgcGVtZXJpbnRhaGFuLCB5YWl0dSBwcmVzaWRlbi4gRGVuZ2FuIGthdGEgbGFpbiwgaXN1IGluaSBtZW5jb2JhIGRpYmF3YSBtZW5qYWRpIGlzdSBuYXNpb25hbCBkZW5nYW4gbWVuZ2d1bmFrYW4gbWVkaWEgc29zaWFsLiAKCktlbmFwYSBtZWRpYSBzb3NpYT8gZGFwYXQgZGlqYXdhYiBkZW5nYW4gZGF0YSBkYXJpIG1lZGlhIHNlcnRhIGhhc2lsIHdhd2FuY2FyYSBkZW5nYW4gKipnZW5kb3ZhcmEqKi4KCiMgQW5hbGlzaXMgS29udGVuCkFuYWxpc2lzIGtvbnRlbiAqKnR3aXQqKiBhdGF1IHR1bGlzYW4geWFuZyBkaXVuZ2dhaCBvbGVoIHdhcmdhIG5ldCBtZWxhbHVpIG1lZGlhIHNvc2lhbCAqKlR3aXR0ZXIqKiBkYXBhdCBkaWxha3VrYW4gbWVsYWx1aSBiZWJlcmFwYSB0YWhhcGFuLiBUYWhhcCBwZXJ0YW1hIGRhcGF0IGRpbGFrdWthbiBtZWxhbHVpIHRhZ2FyIGF0YXUgdGFuZGEgcGFnYXIgKGVuOiAqaGFzaHRhZyopLiBHYW1iYXIgZGkgYmF3YWggaW5pIG1lbnVuanVra2FuIGJlYmVyYXBhIHRhZ2FyIHlhbmcgZGlndW5ha2FuIGRhbGFtIHNldGlhcCBwZXJpb2RlLiAgCgojIyBUYWdhcgpUYWdhciBtZXJ1cGFrYW4gc2FsYWggc2F0dSBpbmRpa2F0b3IgdXRhbWEgeWFuZyBkYXBhdCBkaWd1bmFrYW4gdW50dWsgbWVsaWhhdCBzZWJ1YWgga29udGVuIG1lZGlhIHNvc2lhbC4gRGFsYW0gaGFsIGluaSwgdGFnYXIgc2VyaW5nIGRpZ3VuYWthbiBvbGVoIHBlbmdndW5hIG1lZGlhIHNvc2lhbCBzZWJhZ2FpIHBlbmFuZGEgc2VidWFoIHBlbWJhaGFzYW4sIHRlcm1hc3VrIGRhbGFtIFR3aXR0ZXIuIAoKYGBge3IsIGZpZy5jYXA9IlRhZ2FyIHlhbmcgZGlndW5ha2FuIn0KdGFnYXJfcGVyaW9kZTEgPC0gdGJfcmF3ICU+JQogIGZpbHRlcihwZXJpb2RlID09ICJwZXJpb2RlXzEiKSAlPiUKICBzZWxlY3QoaGFzaHRhZywgdGFnX2NvdW50KSAlPiUKICBmaWx0ZXIodGFnX2NvdW50ID49IDEpICU+JQogIHVubmVzdF90b2tlbnModGFnYXIsIGhhc2h0YWcpICU+JQogIGNvdW50KHRhZ2FyLCBzb3J0ID0gVFJVRSkKCnRhZ2FyX3BlcmlvZGUyIDwtIHRiX3JhdyAlPiUKICBmaWx0ZXIocGVyaW9kZSA9PSAicGVyaW9kZV8yIikgJT4lCiAgc2VsZWN0KGhhc2h0YWcsIHRhZ19jb3VudCkgJT4lCiAgZmlsdGVyKHRhZ19jb3VudCA+PSAxKSAlPiUKICB1bm5lc3RfdG9rZW5zKHRhZ2FyLCBoYXNodGFnKSAlPiUKICBjb3VudCh0YWdhciwgc29ydCA9IFRSVUUpCgp0YWdhcl9wZXJpb2RlMyA8LSB0Yl9yYXcgJT4lCiAgZmlsdGVyKHBlcmlvZGUgPT0gInBlcmlvZGVfMyIpICU+JQogIHNlbGVjdChoYXNodGFnLCB0YWdfY291bnQpICU+JQogIGZpbHRlcih0YWdfY291bnQgPj0gMSkgJT4lCiAgdW5uZXN0X3Rva2Vucyh0YWdhciwgaGFzaHRhZykgJT4lCiAgY291bnQodGFnYXIsIHNvcnQgPSBUUlVFKQoKdGFnYXJfcGVyaW9kZSA8LSBiaW5kX3Jvd3ModGFnYXJfcGVyaW9kZTEgJT4lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXV0YXRlKHBlcmlvZGUgPSAicGVyaW9kZV8xIiksIAogICAgICAgICAgICAgICAgICAgICAgICAgICB0YWdhcl9wZXJpb2RlMiAlPiUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXRhdGUocGVyaW9kZSA9ICJwZXJpb2RlXzIiKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhZ2FyX3BlcmlvZGUzICU+JQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11dGF0ZShwZXJpb2RlID0gInBlcmlvZGVfMyIpKQoKdGFnYXJfcGVyaW9kZSAlPiUKICAjZmlsdGVyKCFzdHJfZGV0ZWN0KHRhZ2FyLCAnYmFsaXRvbGFrcmVrbGFtYXNpJykpICU+JQogICNmaWx0ZXIoIXN0cl9kZXRlY3QodGFnYXIsICdiYWxpbm90Zm9yc2FsZScpKSAlPiUKICBmaWx0ZXIoIXN0cl9kZXRlY3QodGFnYXIsICd0b2xha3Jla2xhbWFzaScpKSAlPiUKICBmaWx0ZXIoIXN0cl9kZXRlY3QodGFnYXIsICdudycpKSAlPiUKICBmaWx0ZXIoIXN0cl9kZXRlY3QodGFnYXIsICducCcpKSAlPiUKICBmaWx0ZXIoIXN0cl9kZXRlY3QodGFnYXIsICdmZicpKSAlPiUKICBmaWx0ZXIoIXN0cl9kZXRlY3QodGFnYXIsICdpbmRvbmVzaWEnKSkgJT4lCiAgZmlsdGVyKCFzdHJfZGV0ZWN0KHRhZ2FyLCAncmVwb3N0JykpICU+JQogIGZpbHRlcighc3RyX2RldGVjdCh0YWdhciwgJ3NoYXJlJykpICU+JQogIGZpbHRlcighc3RyX2RldGVjdCh0YWdhciwgJ2JhbGknKSkgJT4lCiAgZmlsdGVyKCFzdHJfZGV0ZWN0KHRhZ2FyLCAnMicpKSAlPiUKICBmaWx0ZXIoIXN0cl9kZXRlY3QodGFnYXIsICcxJykpICU+JQogIGZpbHRlcighc3RyX2RldGVjdCh0YWdhciwgJzQnKSkgJT4lCiAgZmlsdGVyKCFzdHJfZGV0ZWN0KHRhZ2FyLCAnNScpKSAlPiUKICBmaWx0ZXIoIXN0cl9kZXRlY3QodGFnYXIsICczJykpICU+JQogIGdyb3VwX2J5KHBlcmlvZGUpICU+JQogIHRvcF9uKDE1LCBuKSAlPiUKICBnZ3Bsb3QoYWVzKHJlb3JkZXIodGFnYXIsIG4pLCBuLCBmaWxsID0gcGVyaW9kZSkpICsKICBnZW9tX2NvbChzaG93LmxlZ2VuZCA9IEZBTFNFKSArCiAgZmFjZXRfd3JhcCh+IHBlcmlvZGUsIHNjYWxlcyA9ICJmcmVlIiwgbmNvbCA9IDMpICsKICBjb29yZF9mbGlwKCkgKwogIGxhYnMoeCA9ICJUYWdhciIsIAogICAgICAgeSA9ICJKdW1sYWggdHdpdCB5YW5nIGRpdW5nZ2FoIikKYGBgCgpHYW1iYXIgZGkgYXRhcyBtZW51bmp1a2thbiB0YWdhcmEgKGtlY3VhbGkgdGFnYXIgYmFsaXRvbGFrcmVrbGFtYXNpIGRhbiBiYWxpbm90Zm9yc2FsZSkgeWFuZyBtZW5qYWRpICoqcGFyYW1ldGVyKiogbWVuZGFwYXRrYW4gZGF0YS4gQXN1bXNpbnlhLCBrZXRpYSBkdWEgdGFnYXIgdGVyc2VidXQgZGlndW5ha2FuIGFrYW4gbWVuamFkaSB0ZXJsYWx1aSBkb21pbmFuIGRhbGFtIHZpc3VhbGlzYXNpIGthcmVuYSBzZW11YSB0d2l0IG1lbmdndW5ha2FuIHRhZ2FyIHRlcnNlYnV0LiBTZWxhaW4gZHVhIHRhZ2FyIHRlcnNlYnV0IHRlcmRhcGF0IGJlYmVyYXBhIHRhZ2FyIGxhaW4geWFuZyBqdWdhIHRpZGFrIGRpaWt1dHNlcnRha2FuIGthcmVuYSBkaWFuZ2dhcCB0aWRhayByZWxldmFuLCBtaXNhbG55YSB0YWdhciByZXBvc3QsIHNoYXJlLCBkYW4gYmViZXJhcGEgYW5na2EgeWFuZyB0aWRhayBtZW1pbGlraSBhcnRpIHNlcGVydGkgMSwgMiwgMyBkc3QuIAoKU2VjYXJhIHVtdW0gdGFnYXItdGFnYXIgeWFuZyBkaWd1bmFrYW4gb2xlaCBwZW5nZ3VuYSBUd2l0dGVyIG1lbmdhbGFtaSBwZXJrZW1iYW5nYW4gZGFyaSB3YWt0dSBrZSB3YWt0dS4gSGFsIGluaSBzZWphbGFuIGRlbmdhbiBzYWxhaCBzYXR1IHBlcm55YXRhYW4gZGFyaSBuYXJhIHN1bWJlciB5YW5nIG1lbmdhdGFrYW4gYmFod2EgdGFnYXIgeWFuZyBkaWd1bmFrYW4gZGlwaWxpaCBkYW4gZGlzZXN1YWlrYW4gZGVuZ2FuIG1vbWVuIHlhbmcgYmVya2VtYmFuZyBzYWF0IGl0dS4gQmFsaSBub3QgZm9yIHNhbGUgc2VuZGlyaSB0ZWxhaCBsZWJpaCBkdWx1IGRpZ3VuYWthbiBkaWJhbmRpbmcgdGFnYXIgYmFsaXRvbGFrcmVrbGFtYXNpLCBkYW4gc2V0ZWxhaG55YSB0YWdhciB0ZXJ1cyBiZXJrZW1iYW5nIGhpbmdnYSBwYWRhIGFraGlyIHBlcmlvZGUgYWRhIGp1Z2EgdGFnYXIgKioja2VjZXdhYW1hc3VzaSoqLiBUYWdhciBrZWNld2FhbWFzdXNpIGRpYW50YXJhbnlhIGRhcGF0IGRpbGloYXQgcGFkYSB0d2l0LXR3aXQgYmVyaWt1dCBpbmkuIAoKYGBge3J9CnRiX3JhdyAlPiUKICBmaWx0ZXIoaXNfZHVwbGljYXRlID09IEZBTFNFKSAlPiUKICBmaWx0ZXIoc3RyX2RldGVjdCh0d2VldHMsICIjS2VjZXdhQW1hU3VzaSIpKSAlPiUKICBhcnJhbmdlKGRlc2MocmV0X2NvdW50KSkgJT4lCiAgc2VsZWN0KHVzZXIsIGRhdGUsIHR3ZWV0cykgJT4lCiAgaGVhZChuID0gNSkgJT4lIAogIGthYmxlKCkgJT4lCiAga2FibGVfc3R5bGluZygpCmBgYAoKVHdpdCBkaSBhdGFzIG1lbnVuanVra2FuIHR3aXQtdHdpdCB5YW5nIG1lbWlsaWtpIHRhZ2FyICNLZWNld2FBbWFTdXNpIGRhbiBkaXVydXRrYW4gYmVyZGFzYXJrYW4ganVtbGFoIHJldHdlZXQgdGVyYmFueWFrLiBJc2kgZGFyaSB0d2l0IHNlY2FyYSBzZWtsaWFzIGRhcGF0IG1lbmdnYW1iYXJrYW4gYmFod2EgdHdpdCBkaXVuZ2dhaCBzZWJhZ2FpIHJlc3BvbnMgdGVyaGFkYXAgc2lrYXAgbWVudGVyaSBTdXNpIHRlcmthaXQgZGVuZ2FuIHJla2xhbWFzaSB5YW5nIG1lcmVrYSBoYWRhcGkuIFNlbGFpbiBpdHUsIGRpIHNhbmEganVnYSBtZXJla2EgbWVueWF0YWthbiBiYWh3YSBwaWxpaGFubnlhIGhhbnlhIG1lbm9sYWsgcmVrbGFtYXNpLiAKCkthc3VzIGluaSBzZW5kaXJpIG11bmN1bCBrYXJlbmEgcGFkYSB3YWt0dSBpdHUsIGlqaW4gcmVrbGFtYXNpIGFrYW4gc2VnYXJhIGhhYmlzIGRhbiBoYXJ1cyBtZW5kYXBhdCBwZXJwYW5qYW5nYW4gaWppbi4gUGVtZWJlcmlhbiBpamluIG1lbmphZGkgc2FsYWggc2F0dSBrZXdlbmFuZ2FuIHlhbmcgZGFwYXQgZGliZXJpa2FuIG9sZWggbWVudGVyaSBrZWxhdXRhbiwgeWFpdHUgU3VzaS4gTmFtdW4sIG1lbnVydXQgcGVudXR1cmFuIHNhbGFoIHNlb3JhbmcgcGFydGlzaXBhbiBtZW50ZXJpIHRlcnNlYnV0IG1lbWlsaWggdW50dWsgZGlhbSwgc2VoaW5nZ2Egc2VjYXJhIG90b21hdGlzIGlqaW4gcHVuIGJlcmxhbmp1dC4gS2FyZW5hIGhhbCB0ZXJzZWJ1dGxhaCBrZW11ZGlhbiBtZXJla2EgbWVtYnVhdCB0YWdhciAqKiNLZWNld2FBbWFTdXNpKiouIAoKIyMgVGVybQpUZXJtIGF0YXUga2F0YSBkaWFtYmlsIGRhcmkgaXNpIHR3aXQgc2VsYWluIHVzZXJubWUgZGFuIHRhZ2FyLiBHYW1iYXIgZGkgYmF3YWggaW5pIG1lbnVuanVra2FuIHRlcm0gZGFsYW0gYmVudHVrIGJpZ3JhbS4gRGkgbWFuYSBiaWdyYW0gZGlidWF0IGJlcmRhc2Fya2FuIGtlYmVyYWRhYW4gdGVybSBkYWxhbSB0d2l0IHlhbmcgc2FtYS4gTWlzYWxueWEsIHNlYnVhaCB0d2l0IGJlcmlzaSBrYWxpbWF0ICoqImFrdSBzdWthIG1ha2FuIG5hc2kiKiogbWFrYSBiaWdyYW0geWFuZyBkYXBhdCBkaWJ1YXQgZGFyaSBrYWxpbWF0IHRlcnNlYnV0IGFkYWxhaCAqKiJha3Ugc3VrYSIqKiwgKioic3VrYSBtYWthbiIqKiwgZGFuICoqIm1ha2FuIG5hc2kuIioqIAoKYGBge3IsIGZpZy5jYXA9IkZyZWt1ZW5zaSBCaWdyYW0gZGFsYW0gdHdpdCJ9CnRiX3JhdyAlPiUKICBmaWx0ZXIoaXNfZHVwbGljYXRlID09IEZBTFNFKSAlPiUKICBmaWx0ZXIod29yZF9jb3VudCA+PSAyKSAlPiUKICBzZWxlY3QoZGF0ZSwgY2xlYW5fdGV4dCwgd29yZF9jb3VudCwgcGVyaW9kZSkgJT4lCiAgdW5uZXN0X3Rva2VucyhrYXRhLCBjbGVhbl90ZXh0LCB0b2tlbiA9ICJuZ3JhbXMiLCBuID0gMikgJT4lCiAgY291bnQoa2F0YSwgc29ydCA9IFRSVUUpICU+JQogIGhlYWQobiA9IDIwKSAlPiUKICBnZ3Bsb3QoYWVzKHJlb3JkZXIoa2F0YSwgbiksIG4pKSArIGdlb21fY29sKCkgKyBjb29yZF9mbGlwKCkgKwogIGxhYnMoeCA9ICJiaWdyYW0iLCB5ID0gImp1bWxhaCBiaWdyYW0iKQpgYGAKClBhc2FuZ2FuIGthdGEgeWFuZyBwYWxpbmcgYmFueWFrIG11bmN1bCBkYXJpIHR3aXQgZGVuZ2FuIGR1YSB0YWdhciB5YW5nIGphZGkgcGFyYW1ldGVyIGFkYWxhaCBrb25zZXIgbWluaS4gSGFsIHRlcnNlYnV0IG1lbnVuanVra2FuIGJhaHdhIGR1YSBrYXRhIHRlcnNlYnV0IHJ1dGluIGRpIGd1bmFrYW4gb2xlaCBwZW5nZ3VuYSB0d2l0dGVyLiBTZWxhaW4gaXR1LCBiZXJkYXJhc2thbiBmcmVrdWVuc2lueWEsIHBhc2FuZ2FuIGthdGEgeWFuZyBtdW5jdWwgc2VsYW5qdXRueWEgYWRhbGFoIG1ldHJvIGRhbiB0diwgeWFuZyBtZW51anVra2FuIHNlYnVhaCBzdGFzaXVuIHR2IG5hc2lvbmFsLiBQZW55ZWJhYiBkdWEga2F0YSB0ZXJzZWJ1dCBzZXJpbmcgbXVuY3VsIGtlbXVuZ2tpbmFuIGJlc2FyIGRpcGljdSBvbGVoIGFkYW55YSBhY2FyYSB5YW5nIG1lbmd1bmRhbmcgdG9rb2gvYWt0b3IgZ2VyYWthbiBiYWxpIHRvbGFrIHJla2xhbWFzaS4gUGFzYW5nYW4ga2F0YSBiZXJpa3V0bnlhIGFkYWxhaCBwZXJwcmVzIGxpbWFzYXR1IHlhbmcgbWVydWp1ayBwYWRhIHBlcnByZXMgbm8gNTEgdGFodW4gMjAxNCB0ZW50YW5nIHJla2xhbWFzaSB0ZWx1ayBiZW5vYS4gS2VtdW5jdWxhbiBrYXRhIGluaSBzZWNhcmEgdGlkYWsgbGFuZ3N1bmcgdGVsYWggbWVuZ29uZmlybWFzaSBiYWh3YSB0d2l0IHlhbmcgZGlndW5ha2FuIGJlcmlzaSBwZW5kYXBhdCB3YXJnYSBuZXQgc2VwdXRhciByZWtsYW1hc2kgdGVsdWsgYmVub2EuIAoKS2F0YSBhdGF1IHBhc2FuZ2FuIGthdGEgYmVyaWt1dG55YSBqdWdhIGRhcGF0IGRpbnRlcnByZXRhc2lrYW4gZGVuZ2FuIHBvbGEgeWFuZyBzYW1hLCB5YWl0dSBkZW5nYW4gbWVydWp1ayBwYWRhIGNlcml0YSBiYWlrIHlhbmcgZGlkYXBhdCBkYXJpIGRhdGEgZGFyYXQuIEludGVycHJldGFzaSBqdWdhIGRhcGF0IGRpbGFrdWthbiBkZW5nYW4gbWVydWp1ayBwYWRhIGhhc2lsIGBjbG9zZSByZWFkaW5nYCB0d2l0IGFrdG9yIHV0YW1hLiAKCiMjIFNlbWFudGljIG5ldHdvcmsKU2VsYWluIGRlbmdhbiBiaWdyYW0gZGkgYXRhcywgaHVidW5nYW4gYW50YXIga2F0YSBkYXJpIHNlYnVhaCBrb3JwdXMganVnYSBkYXBhdCBkaWxpaGF0IG1lbGFsdWkgc2VtYW50aWMgbmV0d29yay4gRGkgbWFuYSBzYXR1IHRlcm0gbWVtaWxpa2kgaHVidW5nYW4gZGVuZ2FuIHRlcm0gbGFpbiBiZXJkYXNhcmthbiBrZWJlcmFkYWFubnlhLiBHYW1iYXIgZGkgYmF3YWggaW5pIG1lbnVuanVra2FuIGh1YnVuZ2FuIGFudGFyIHRlcm0geWFuZyB0ZXJqYWRpIG1pbmltYWwgMTAwIGthbGkuIAoKYGBge3IsIGZpZy5jYXA9ICJXb3JkIG5ldHdvcmsgZGFsYW0gdHdpdCB5YW5nIG1lbmdndW5ha2FuIHRhZ2FyIGJucyBhdGF1IGJ0ciJ9CmJpZ3JhbV9jb3VudHMgPC0gdGJfcmF3ICU+JQogIGZpbHRlcihpc19kdXBsaWNhdGUgPT0gRkFMU0UpICU+JQogIGZpbHRlcih3b3JkX2NvdW50ID49IDIpICU+JQogIHNlbGVjdChjbGVhbl90ZXh0KSAlPiUKICB1bm5lc3RfdG9rZW5zKGJpZ3JhbSwgY2xlYW5fdGV4dCwgdG9rZW4gPSAibmdyYW1zIiwgbiA9IDIpICU+JQogIGNvdW50KGJpZ3JhbSwgc29ydCA9IFRSVUUpICU+JQogIHNlcGFyYXRlKGJpZ3JhbSwgaW50byA9IGMoIndvcmQxIiwgIndvcmQyIikpCgpsaWJyYXJ5KHdpZHlyKQoKYmlncmFtX2NvdW50cyAlPiUKICBmaWx0ZXIobiA+PSAxMDApICU+JQogIGdyYXBoX2Zyb21fZGF0YV9mcmFtZSgpICU+JQogIGdncmFwaChsYXlvdXQgPSAiZnIiKSArCiAgZ2VvbV9lZGdlX2xpbmsoYWVzKGVkZ2VfYWxwaGEgPSBuLCBlZGdlX3dpZHRoID0gbiksIGVkZ2VfY29sb3VyID0gImN5YW40IikgKwogIGdlb21fbm9kZV9wb2ludChzaXplID0gNSkgKwogIGdlb21fbm9kZV90ZXh0KGFlcyhsYWJlbCA9IG5hbWUpLCByZXBlbCA9IFRSVUUsIAogICAgICAgICAgICAgICAgIHBvaW50LnBhZGRpbmcgPSB1bml0KDAuMiwgImxpbmVzIikpICsKICB0aGVtZV92b2lkKCkKYGBgCgpEYXJpIGdhbWJhciBkaSBhdGFzIGtpdGEgZGFwYXQgbWVuZ2V0YWh1aSBiYWh3YSBnZXJha2FuIHRlbGFoIGRpbGlwdXQgb2xlaCB0diwgZGlhbnRhcmFueWEgYWRhbGFoIG9sZWggbWV0cm8gZGFuIGtvbXBhcyB0di4gSGFsIGluaSBkaXR1bmp1a2thbiBvbGVoIG11bmN1bG55YSB0aWdhIGthdGEgdGVyc2VidXQgZGFsYW0gc2F0dSBqYXJpbmdhbiB5YW5nIHNhbWEuIFVudHVrIG1lbmdpbmZpcm1hc2kgaGFsIGluaSwga2l0YSBkYXBhdCBtZWxpaGF0bnlhIHNlY2FyYSBsYW5nc3VuZyBkYWxhbSBpc2kgdHdpdCBiZXJpa3V0LiAKCioqVHdpdCBkZW5nYW4ga2F0YSBrdW5jaSB0dioqCmBgYHtyfQp0Yl9yYXcgJT4lCiAgZmlsdGVyKGlzX2R1cGxpY2F0ZSA9PSBGQUxTRSkgJT4lCiAgZmlsdGVyKHN0cl9kZXRlY3QodHdlZXRzLCAiVHYiKSkgJT4lCiAgYXJyYW5nZShkZXNjKHJldF9jb3VudCkpICU+JQogIHNlbGVjdCh1c2VyLCBkYXRlLCB0d2VldHMpICU+JQogIGhlYWQobiA9IDUpICU+JSAKICBrYWJsZSgpICU+JQogIGthYmxlX3N0eWxpbmcoKQpgYGAKKipUd2l0IGRlbmdhbiBrYXRhIGt1bmNpIGtvbXBhcyB0dioqCmBgYHtyfQp0Yl9yYXcgJT4lCiAgZmlsdGVyKGlzX2R1cGxpY2F0ZSA9PSBGQUxTRSkgJT4lCiAgZmlsdGVyKHN0cl9kZXRlY3QodHdlZXRzLCAiS29tcGFzIFRWIikpICU+JQogIGFycmFuZ2UoZGVzYyhyZXRfY291bnQpKSAlPiUKICBzZWxlY3QodXNlciwgZGF0ZSwgdHdlZXRzKSAlPiUKICBoZWFkKG4gPSA1KSAlPiUgCiAga2FibGUoKSAlPiUKICBrYWJsZV9zdHlsaW5nKCkKYGBgCgojIyBUZi1pZGYKUGVuamVsYXNhbiB0ZW50YW5nIFRGLUlERiBzZWNhcmEgdW11bSBkYXBhdCBkaXRlbXVrYW4gZGkgc2luaS4gU2VjYXJhIHVtdW0gVEYtSURGIG1lcnVwYWthbiBzZWJ1YWggdXBheWEgdW50dWsgbWVuZW11a2FuIHRlcm0geWFuZyBwZW50aW5nIGRhbGFtIHNlYnVhaCBkb2t1bWVuIGRlbmdhbiBtZW1iYW5kaW5na2FuIGZyZWt1ZW5zaSBkYWxhbSBkb2t1bWVuIHlhbmcgc3Blc2lmaWsgZGVuZ2FuIGZyZWt1ZW5zaSBkYWxhbSBkb2t1bWVuIHNlY2FyYSB1bXVtLiBTZWJhZ2FpIGlsdXN0cmFzaSwga2l0YSBkYXBhdCBtZW5lbXVrYW4gdGVybSB5YW5nIGhhbXBpciBwYXN0aSBtZW1pbGlraSBmcmVrdWVuc2kgeWFuZyB0aW5nZ2kgZGFsYW0gc2V0aWFwIGRva3VtZW4sIG1pc2FsbnlhIGthdGEgZGksIGRhbiBkYW4gZGFsYW0uIEthdGEta2F0YSB0ZXJzZWJ1dCBzZXJpbmcgZGlzZWJ1dCAqc3RvcHdvcmRzKi4gTmFtdW4ga2FyZW5hIGthdGEgdGVyc2VidXQgdGlkYWsgYmVyc2lmYXQgdW5paywgZGFuIGp1Z2EgYWRhIGRhbGFtIGRva3VtZW4geWFuZyBsYWluLCBtYWthIG5pbGFpIHRmLWlkZm55YSBha2FuIHR1cnVuLiBTZWJhbGlrbnlhLCBqaWthIHNlYnVhaCB0ZXJtIG1lbWlsaWtpIGZyZWt1ZW5zaSB0aW5nZ2kgZGFsYW0gc2VidWFoIGRva3VtZW4gZGFuIHRpZGFrIGRhbGFtIGRva3VtZW4geWFuZyBsYWluLCBrYXRhIGF0YXUgdGVybSB0ZXJzZWJ1dCBha2FuIG1lbWlsaWtpIG5pbGFpIHlhbmcgdGluZ2dpLiBHYW1iYXIgZGkgYmF3YWggaW5pLCBtZW51bmp1a2thbiBrYXRhLWthdGEgZGVuZ2FuIHRmLWlkZiB0ZXJ0aW5nZ2kgZGFsYW0gc2V0aWFwIHBlcmlvZGUuIAoKYGBge3IsIGZpZy5jYXA9IlRGLUlERiBiaWdyYW0gcGVyIHBlcmlvZGUifQp0d2l0X3dvcmRzIDwtIHRiX3JhdyAlPiUKICBmaWx0ZXIoaXNfZHVwbGljYXRlID09IEZBTFNFKSAlPiUKICBmaWx0ZXIod29yZF9jb3VudCA+PSAyKSAlPiUKICBzZWxlY3QoY2xlYW5fdGV4dCwgcGVyaW9kZSkgJT4lCiAgZ3JvdXBfYnkocGVyaW9kZSkgJT4lCiAgdW5uZXN0X3Rva2VucyhrYXRhLCBjbGVhbl90ZXh0LCB0b2tlbiA9ICJuZ3JhbXMiLCBuID0gMikgJT4lCiAgY291bnQoa2F0YSwgc29ydCA9IFRSVUUpCgp0b3RhbF93b3JkcyA8LSB0d2l0X3dvcmRzICU+JSAKICBncm91cF9ieShwZXJpb2RlKSAlPiUKICBzdW1tYXJpc2UodG90YWwgPSBzdW0obikpCgp0d2l0X3dvcmRzIDwtIGxlZnRfam9pbih0d2l0X3dvcmRzLCB0b3RhbF93b3JkcykKCnR3aXRfd29yZHMgPC0gdHdpdF93b3JkcyAlPiUKICBiaW5kX3RmX2lkZihrYXRhLCBwZXJpb2RlLCBuKSAlPiUKICBhcnJhbmdlKGRlc2ModGZfaWRmKSkKCiMgVmlzdWFsaXNhc2kgdGYtaWRmCnR3aXRfd29yZHMgJT4lCiAgYXJyYW5nZShkZXNjKHRmX2lkZikpICU+JQogIG11dGF0ZShrYXRhID0gZmFjdG9yKGthdGEsIGxldmVscyA9IHJldih1bmlxdWUoa2F0YSkpKSkgJT4lIAogIGdyb3VwX2J5KHBlcmlvZGUpICU+JSAKICB0b3BfbigxMCkgJT4lIAogIHVuZ3JvdXAgJT4lCiAgZ2dwbG90KGFlcyhyZW9yZGVyKGthdGEsdGZfaWRmKSwgdGZfaWRmLCBmaWxsID0gcGVyaW9kZSkpICsKICBnZW9tX2NvbChzaG93LmxlZ2VuZCA9IEZBTFNFKSArCiAgZmFjZXRfd3JhcCh+cGVyaW9kZSwgbmNvbCA9IDIsIHNjYWxlcyA9ICJmcmVlIikgKyAKICBsYWJzKHggPSAiQmlncmFtIiwgeSA9ICJWYWx1ZSIpICsKICBjb29yZF9mbGlwKCkKYGBgCgpHYW1iYXIgZGkgYXRhcyBtZW51bmp1a2thbiBrYXRhIGF0YXUgcGFzYW5nYW4ga2F0YSB5YW5nIGRpYW5nZ2FwIGxlYmloIHBlbnRpbmcgZGliYW5kaW5nIGthdGEgbGFpbm55YSBkYWxhbSBzZXRpYXAgcGVyaW9kZS4gUGFkYSBwZXJpb2RlIHBlcnRhbWEga2F0YSB0ZXJwZW50aW5nbnlhIGFkYWxhaCAqKiJkcHJkIGJlcnBlcmFuZy4iKiogSmlrYSBtZXJ1anVrIHBhZGEgdHdpdCB5YW5nIG1lbmdhbmR1bmcga2F0YSB0ZXJzZWJ1dCwgbWFrYW4ga2F0YSAqKmRwcmQgYmVycGVyYW5nKiogZGFwYXQgZGlpbnRlcnByZXRhc2lrYW4gc2ViYWdhaSB1cGF5YSBwZXJsYXdhbmFuIG1hc3lhcmFrYXQgQmFsaSB1bnR1ayBtZW5vbGFrIHJla2xhbWFzaSB0ZWx1ayBiZW5vYSBkZW5nYW4gY2FyYSBiZXJkZW1vbnN0cmFzaSBkaSBnZWR1bmcgZHByZCBCYWxpLiBIYWwgdGVyc2VidXQgZGFwYXQgZGlsaWhhdCBkYWxhbSBiZWJlcmFwYSB0d2l0IGRpIGJhaHdhaCBpbmkuIAoKYGBge3J9CnRiX3JhdyAlPiUKICBmaWx0ZXIoaXNfZHVwbGljYXRlID09IEZBTFNFKSAlPiUKICBmaWx0ZXIocGVyaW9kZSA9PSAicGVyaW9kZV8xIikgJT4lCiAgZmlsdGVyKCFzdHJfZGV0ZWN0KHR3ZWV0cywgIlJUIikpICU+JQogIGZpbHRlcihzdHJfZGV0ZWN0KGNsZWFuX3RleHQsICJkcHJkIGJlcnBlcmFuZyIpKSAlPiUKICBzZWxlY3QodXNlciwgZGF0ZSwgdHdlZXRzKSAlPiUKICBoZWFkKG4gPSA1KSAlPiUgCiAga2FibGUoKSAlPiUKICBrYWJsZV9zdHlsaW5nKCkKYGBgClNlbWVudGFyYSBkYWxhbSBwZXJpb2RlIGR1YSwga2l0YSBtZW5lbXVrYW4gdGVybSB5YW5nIGN1a3VwIHVuaWsgeWFpdHkgKip2ZSBmb29sZWQqKi4gVGFucGEgbWVtYmFjYSBsZWJpaCBqYXVoIHRlcm0gdGVyc2VidXQgc3VzYWggdW50dWsgZGlpbnRlcnByZXRhc2lrYW4uIFVudHVrIGl0dSwgYmViZXJhcGEgdHdpdCBkaSBiYXdhaCBpbmkgbXVuZ2tpbiBkYXBhdCBtZW1iZXJpa2FuIGdhbWJhcmFuIHRlbnRhbmcgaXNpIHR3aXQgZGVuZ2FuIGthdGEgdGVyc2VidXQuIAoKYGBge3J9CnRiX3JhdyAlPiUKICBmaWx0ZXIoaXNfZHVwbGljYXRlID09IEZBTFNFKSAlPiUKICBmaWx0ZXIocGVyaW9kZSA9PSAicGVyaW9kZV8yIikgJT4lCiAgZmlsdGVyKCFzdHJfZGV0ZWN0KHR3ZWV0cywgIlJUIikpICU+JQogIGFycmFuZ2UoZGVzYyhyZXRfY291bnQpKSAlPiUKICBmaWx0ZXIoc3RyX2RldGVjdChjbGVhbl90ZXh0LCAidmUgZm9vbGVkIikpICU+JQogIHNlbGVjdCh1c2VyLCBkYXRlLCB0d2VldHMpICU+JQogIGhlYWQobiA9IDUpICU+JSAKICBrYWJsZSgpICU+JQogIGthYmxlX3N0eWxpbmcoKQpgYGAKRGFyaSB0d2l0IGRpIGF0YXMsIHRlcm55YXRhIHRlcm0gKip2ZSBmb29sZWQqKiBiZXJrYWl0YW4gZGVuZ2FuIGtlYmVyYWRhYW4gQ3Jpc3RpYW5vIFJvbmFsZG8ga2UgQmFsaS4gVGVybSB2ZSBzZW5kaXJpIHRlcm55YXRhIGJlcmFzYWwgZGFyaSAndmUgZm9vbGVkIGF0YXUgdSd2ZSBiZWVuIGZvb2xlZC4gRGVuZ2FuIGthdGEgbGFpbiwgbWVsYWx1aSB0ZXJtIHRlcnNlYnV0IGtpdGEgZGFwYXQgbWVuZ2V0YWh1aSBiYWh3YSB3YXJnYSBuZXQgbWVuZ2FuZ2dhcCBDcmlzdGlhbm8gdGVsYWggZGlib2hvbmdpIG9sZWggYWt1biB5YW5nIGp1Z2EgZGl0dW5qdWtrYW4gZGFsYW0gdHdpdCB0ZXJzZWJ1dC4KCkthdGEgdGVycGVudGluZyBkYXJpIHBlcmlvZGUga2V0aWdhIGFkYWxhaCAqKmFydCBldmVudC4qKiBUZXJtIGluaSBiZXJrYWl0YW4gZGVuZ2FuIGtlZ2lhdGFuIHlhbmcgZGlsYWt1a2FuIHVudHVrIG1lbnl1YXJha2FuIHBlbm9sYWthbiByZWtsYW1hc2kuIEhhbCBpbmkgdGVyY2VybWluIGRhbGFtIHR3aXQgZGkgYmF3YWggaW5pLiAKCmBgYHtyfQp0Yl9yYXcgJT4lCiAgZmlsdGVyKGlzX2R1cGxpY2F0ZSA9PSBGQUxTRSkgJT4lCiAgZmlsdGVyKHBlcmlvZGUgPT0gInBlcmlvZGVfMyIpICU+JQogIGZpbHRlcighc3RyX2RldGVjdCh0d2VldHMsICJSVCIpKSAlPiUKICBhcnJhbmdlKGRlc2MocmV0X2NvdW50KSkgJT4lCiAgZmlsdGVyKHN0cl9kZXRlY3QoY2xlYW5fdGV4dCwgImFydCBldmVudCIpKSAlPiUKICBzZWxlY3QodXNlciwgZGF0ZSwgdHdlZXRzKSAlPiUKICBoZWFkKG4gPSA1KSAlPiUgCiAga2FibGUoKSAlPiUKICBrYWJsZV9zdHlsaW5nKCkKYGBgCgojIyBUb3BpYyBNb2RlbGxpbmcKVG9waWMgbW9kZWxsaW5nIGRpIHNpbmkgZGliYWdpIG1lbmphZGkgdGlnYSBiYWdpYW4gYmVyZGFzYXJrYW4gcGVyaW9kZSB3YWt0dSB0d2l0IGRpdW5nZ2FoLiBOYW11biBzZWJlbHVtbnlhIHRlcmxlYmloIGRhaHVsdSBha2FuIGRpbGloYXQgdG9waWMgc2VjYXJhIHVtdW0gZGFyaSBkYXRhLiBUb3Bpay10b3BpayB5YW5nIG11bmN1bCBwZXIgcGVyaW9kZSBzZWxhbmp1dG55YSBkYXBhdCBkaWxpaGF0IHBhZGEgZ2FtYmFyLWdhbWJhcmEgZGkgYmF3YWggaW5pLiBVbnR1ayBrZXRlcmFuZ2FuIGxlYmloIGxhbmp1dCBkZW5nYW4gdG9waWMgbW9kZWxsaW5nIGRlbmdhbiBhbGdvcml0bWUgTERBIGRhcGF0IGRpbGloYXQgW2RpIHNpbmldKGh0dHA6Ly93d3cuam1sci5vcmcvcGFwZXJzL3ZvbHVtZTMvYmxlaTAzYS9ibGVpMDNhLnBkZikuIAoKYGBge3J9CiMgdGhlIExEQSBmdW5jdGlvbiB1c2luZyB0b3BpY21vZGVscyBwYWNrYWdlCmJpZ3JhbV90bSA8LSBmdW5jdGlvbihpbnB1dF90ZXh0LCAKICAgICAgICAgICAgICAgICAgICAgICBwbG90ID0gVCwgCiAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVyX29mX3RvcGljcyA9IDQpCnsgICAgCiAgc2V0LnNlZWQoMjAxNikKICBDb3JwdXMgPC0gVkNvcnB1cyhWZWN0b3JTb3VyY2UoaW5wdXRfdGV4dCkpCiAgCiAgQmlncmFtVG9rZW5pemVyIDwtIGZ1bmN0aW9uKHgpIE5HcmFtVG9rZW5pemVyKHgsIFdla2FfY29udHJvbChtaW49MiwgbWF4PTIpKQogIERUTSA8LSBEb2N1bWVudFRlcm1NYXRyaXgoQ29ycHVzLCBjb250cm9sPWxpc3QodG9rZW5pemU9QmlncmFtVG9rZW5pemVyKSkKICB1bmlxdWVfaW5kZXhlcyA8LSB1bmlxdWUoRFRNJGkpCiAgRFRNIDwtIERUTVt1bmlxdWVfaW5kZXhlcyxdCiAgbGRhIDwtIExEQShEVE0sIGsgPSBudW1iZXJfb2ZfdG9waWNzLCBjb250cm9sID0gbGlzdChzZWVkID0gMTIzNCkpCiAgdG9waWNzIDwtIHRpZHkobGRhLCBtYXRyaXggPSAiYmV0YSIpCiAgdG9wX3Rlcm1zIDwtIHRvcGljcyAgJT4lIAogICAgZ3JvdXBfYnkodG9waWMpICU+JSAKICAgIHRvcF9uKDEwLCBiZXRhKSAlPiUKICAgIHVuZ3JvdXAoKSAlPiUKICAgIGFycmFuZ2UodG9waWMsIC1iZXRhKQogIAogICMgaWYgdGhlIHVzZXIgYXNrcyBmb3IgYSBwbG90IChUUlVFIGJ5IGRlZmF1bHQpCiAgaWYocGxvdCA9PSBUKXsKICAgIHRvcF90ZXJtcyAlPiUKICAgICAgbXV0YXRlKHRlcm0gPSByZW9yZGVyKHRlcm0sIGJldGEpKSAlPiUgCiAgICAgIGdncGxvdChhZXModGVybSwgYmV0YSwgZmlsbCA9IGZhY3Rvcih0b3BpYykpKSArCiAgICAgIGdlb21fY29sKHNob3cubGVnZW5kID0gRkFMU0UpICsgCiAgICAgIGZhY2V0X3dyYXAofiB0b3BpYywgc2NhbGVzID0gImZyZWUiKSArCiAgICAgIGxhYnMoeCA9IE5VTEwsIHkgPSAiQmV0YSIpICsgCiAgICAgIGNvb3JkX2ZsaXAoKQogIH1lbHNleyAKICAgICMgaWYgdGhlIHVzZXIgZG9lcyBub3QgcmVxdWVzdCBhIHBsb3QKICAgICMgcmV0dXJuIGEgbGlzdCBvZiBzb3J0ZWQgdGVybXMgaW5zdGVhZAogICAgcmV0dXJuKHRvcF90ZXJtcykKICB9Cn0KYGBgCgpEaSBkYWxhbSBhbmFsaXNpcyBpbmkgdHdpdCB5YW5nIGRpZ3VuYWthbiBoYW55YSA1NTA2Nywga2FyZW5hIHNlYmVsdW1ueWEgdGVsYWggZGlsYWt1a2FuIGJlYmVyYXBhIGZpbHRlcmlzYXNpLiBQZXJ0YW1hLCB0d2l0IHlhbmcgbWVtaWxpa2kga29udGVuIHlhbmcgc2FtYSBkaWhpbGFuZ2thbiwga2VkdWEsIHR3aXQgeWFuZyBzZXRlbGFoIGRpbGFrdWthbiBjbGVhbmluZyBoYW55YSBtZW1pbGlraSBzYXR1ICp0ZXJtKiBkYW4gYXRhdSBrb29zb25nIGp1Z2EgZGloaWxhbmdrYW4uIFNlaGluZ2dhIHRvcGljIG1vZGVsbGluZyBkaWhhc2lsa2FuIGRhcmkgdHdpdCB5YW5nIG1lbWlsaWtpIG1pbmltYWwgZHVhICp0ZXJtKiBzZXRlbGFoIGNsZWFuaW5nLiAKCi0gZmlsdGVyID0gd29yZGNvdW50ID49IDIKLSB0b3RhbCB0d2l0ID0gKio1NTA2NyoqCgpgYGB7ciwgZmlnLmNhcD0iVG9waWMgbW9kZWxsaW5nIGRhcmkgc2VsdXJ1aCB0d2l0In0Kc2V0LnNlZWQoMjAxOCkKIyB0YWtpbmcgZGF0YSBmb3IgdG9waWMgbW9kZWxsaW5nCnRtX3RlbHVrX2Jlbm9hIDwtIHRiX3JhdyAlPiUKICBzZWxlY3QoZGF0ZSwgdXNlcixjbGVhbl90ZXh0LCB3b3JkX2NvdW50LCBwYXJhbWV0ZXIpICU+JQogIGZpbHRlcih3b3JkX2NvdW50ID49IDIpCgojIHRvcGljIG1vZGVsbGluZwp0bV90d2l0IDwtIGJpZ3JhbV90bSh0bV90ZWx1a19iZW5vYSRjbGVhbl90ZXh0LCBudW1iZXJfb2ZfdG9waWNzID0gNCkKdG1fdHdpdApgYGAKCiMjIyBUb3BpayAxIC0gYWtzaSBwZW5vbGFrYW4KCkdhbWJhciBub21vciBzYXR1IG1lbnVuanVra2FiIGJlYmVyYXBhIHRvcGlrIHRlcmthaXQgZGVuZ2FuIHBlbm9sYWthbiByZWtsYW1hc2kgdGVsdWsgYmVub2EgZGkgQmFsaWsuIERpIHNpbmkga2l0YSBkYXBhdCBtZWxpaGF0IGJhaHdhIHNhbGFoIHNhdHUgYWtzaSBkaWxha3VrYW4gZGVuZ2FuIGNhcmEgbWVsYWt1a2FuIGRlbW9uc3RyYXNpIGRpIGthbnRvciAqKkRQUkQgQkFMSSoqLiBCZWJlcmFwYSB3YXJnYSBuZXQganVnYSBtZW5nYW5nZ2FwIGFrc2kgbWVyZWthIHNlYmFnYWkgdXBheWEgbWVtZXJhbmdpIHBlbmd1YXNhIGRhbiBwZW5ndXNhaGEgeWFuZyBiZXJ1cGF5YSBtZWxha3VrYW4vbWVuZHVrdW5nIHJla2xhbWFzaSBkaWxha3VrYW4uIERpIHNpc2kgbGFpbiwgbWVyZWthIG1lbmdhbmdnYXAgcmVrbGFtYXNpIGFrYW4gbWVydXNhayBhbGFtIHlhbmcgc2VoYXJ1c255YSBkaWxlc3RhcmlrYW4uIEhhbCB0ZXJzZWJ1dCB0ZXJjZXJtaW4gZGFsYW0gdHdpdC10d2l0IHlhbmcgbWVuZ2d1bmFrYW4gdGFnYXIgYmFsaW5vdGZvcnNhbGUgZGFuIGF0YXUgYmFsaXRvbGFrcmVrbGFtYXNpLiBDb250b2ggdHdpdCBkYXJpIHBlcmlvZGUgdGVyc2VidXQgYWRhbGFoIHNlYmFnYWkgYmVyaWt1dDogCgpgYGB7cn0KdGJfcmF3ICU+JQogIGZpbHRlcihpc19kdXBsaWNhdGUgPT0gRkFMU0UpICU+JQogIGZpbHRlcighc3RyX2RldGVjdCh0d2VldHMsICJSVCIpKSAlPiUKICBhcnJhbmdlKGRlc2MocmV0X2NvdW50KSkgJT4lCiAgc2VsZWN0KHVzZXIsIGRhdGUsIHR3ZWV0cykgJT4lCiAgaGVhZChuID0gNSkgJT4lIAogIGthYmxlKCkgJT4lCiAga2FibGVfc3R5bGluZygpCmBgYApTZWxhaW4gZGVuZ2FuIG1lbGFrdWthbiBha3NpIGRlbW9uc3RyYXNpLCBwZW5vbGFrYW4gcmVrbGFtYXNpIGp1Z2EgZGlsYWt1a2FuIG1lbGFsdWkgYWtzaSBrb25zZXIuIERhbGFtIGhhbCBpbmksIGtvbnNlciBkaXNlYnV0IHNlYmFnYWkga29uc2VyIGJhbGkgbm90IGZvciBzYWxlIHlhbmcganVnYSBtZW5qYWRpIHNhbGFoIHNhdHUgdGFnYXIuIE5hbXVuIGppa2EgZGlsaWhhdCBiZXJkYXNhcmthbiB3YWt0dSBrZWJlcmFkYWFubnlhLCB0YWdhciBpbmkgZGlndW5ha2FuIGxlYmloIGR1bHUgZGliYW5kaW5nIHRhZ2FyIGJhbGl0b2xha3Jla2xhbWFzaS4gRGVuZ2FuIGRlbWlraWFuLCBkYXBhdCBkaWtldGFodWkgYmFod2EgZ2VyYWthbiBzb3NpYWwgaW5pIGJlcnVzYWhhIG1lbmdndW5ha2FuIGtlZ2lhdGFuLWtlZ2lhdGFuIHNlbmkgc2ViYWdhaSBzYWxhaCBzYXR1IGFrc2lueWEuIAoKIyMjIFRvcGlrIDIgLSBwZXJueWF0YWFuIHNlYmFnYWkgc2VidWFoIGdlcmFrYW4KClRvcGlrIG5vbW9yIGR1YSBkYXBhdCBkaWludGVycHJldGFzaWthbiBzZWJhZ2FpIHBlcm55YXRhYW4gYmFod2EgcGVuZ2d1bmFhbiBtZWRpYSBzb3NpYWwgZGVuZ2FuIHRhZ2FyIGJhbGl0b2xha3Jla2xhbWFzaSBkYW4gYmFsaW5vdGZvcnNhbGUgc2ViYWdhaSBzZWJ1YWggZ2VyYWthbi4gRGFsYW0gaGFsIGluaSBrZW11bmdraW5hbiBwZXJueWF0YWFuIHRlcnNlYnV0IGp1Z2EgZGlzYW1wYWlrYW4gcGFkYSBzZWJ1YWggYWNhcmEga29uc2VyIHlhbmcgZGlzZWJ1dCBrb25zZXIgc3ZhcmEgYnVtaS4gSGFsIGluaSBkaWFudGFyYW55YSBkYXBhdCBkaWxpaGF0IHBhZGEgdHdpdCBiZXJpa3V0LgoKYGBge3J9CnRiX3JhdyAlPiUKICBmaWx0ZXIoaXNfZHVwbGljYXRlID09IEZBTFNFKSAlPiUKICBmaWx0ZXIoIXN0cl9kZXRlY3QodHdlZXRzLCAiUlQiKSkgJT4lCiAgZmlsdGVyKHN0cl9kZXRlY3QoY2xlYW5fdGV4dCwgInJpYnVhbiIpKSAlPiUKICBhcnJhbmdlKGRlc2MocmV0X2NvdW50KSkgJT4lCiAgc2VsZWN0KHVzZXIsIGRhdGUsIHR3ZWV0cykgJT4lCiAgaGVhZChuID0gMikgJT4lIAogIGthYmxlKCkgJT4lCiAga2FibGVfc3R5bGluZygpCmBgYAoKYGBge3J9CnRiX3JhdyAlPiUKICBmaWx0ZXIoaXNfZHVwbGljYXRlID09IEZBTFNFKSAlPiUKICBmaWx0ZXIoIXN0cl9kZXRlY3QodHdlZXRzLCAiUlQiKSkgJT4lCiAgZmlsdGVyKHN0cl9kZXRlY3QoY2xlYW5fdGV4dCwgInN2YXJhIGJ1bWkiKSkgJT4lCiAgYXJyYW5nZShkZXNjKHJldF9jb3VudCkpICU+JQogIHNlbGVjdCh1c2VyLCBkYXRlLCB0d2VldHMpICU+JQogIGhlYWQobiA9IDUpICU+JSAKICBrYWJsZSgpICU+JQogIGthYmxlX3N0eWxpbmcoKQpgYGAKCiMjIyBUb3BpayAzIC0gb2JqZWsgeWFuZyBkaXRvbGFrCgpUb3BpayB5YW5nIGtldGlnYSBiZXJrYWl0YW4gZGVuZ2FuIHNhbGFoIHNhdHUgdHVudHV0YW4gZ2VyYWthbiBkYW4gYWtzaSwgeWFpdHUgcGVtYmF0YWxhbiBwZXJwcmVzIG5vLiA1MS4gSGFsIGluaSBkYXBhdCBkaWxpaGF0IGJhaWsgZGFyaSB0d2l0IG1hdXB1biBkYXJpIGZyZWt1ZW5zaSBiaWdyYW0gKGxpaGF0IGJhZ2FpbiAqKlRlcm0qKikuIEJlcmlrdXQgYWRhbGFoIGJlYmVyYXBhIHR3aXQgdGVudGFuZyBwZXJwcmVzIHRlcnNlYnV0LiAKCmBgYHtyfQp0Yl9yYXcgJT4lCiAgZmlsdGVyKGlzX2R1cGxpY2F0ZSA9PSBGQUxTRSkgJT4lCiAgZmlsdGVyKCFzdHJfZGV0ZWN0KHR3ZWV0cywgIlJUIikpICU+JQogIGZpbHRlcihzdHJfZGV0ZWN0KGNsZWFuX3RleHQsICJwZXJwcmVzIikpICU+JQogIGFycmFuZ2UoZGVzYyhyZXRfY291bnQpKSAlPiUKICBzZWxlY3QodXNlciwgZGF0ZSwgdHdlZXRzKSAlPiUKICBoZWFkKG4gPSA1KSAlPiUgCiAga2FibGUoKSAlPiUKICBrYWJsZV9zdHlsaW5nKCkKYGBgCgojIyMgVG9waWsgNCAtIHBlcm55YXRhYW4gc2lrYXAgbWVsYWx1aSBha3NpCgpTZWJlbHVtIGxlYmloIGphdWgsIHBhZGEgdG9waWsga2UgZW1wYXQgYWRhIHNhdHUgdGVybSB5YW5nIG11bmdraW4gY3VrdXAgdW5payB5YWl0dSBkb24uIHRlcm0gaW5pIGJlcmFzYWwgZGFyaSBkb24ndCBkYWxhbSBiYWhhc2EgaW5nZ3Jpcy4gQmVyaWt1dCBpbmkgYWRhbGFoIGJlYmVyYXBhIHR3aXQgZGVuZ2FuIHRlcm0gdGVyc2VidXQuIApgYGB7cn0KdGJfcmF3ICU+JQogIGZpbHRlcihpc19kdXBsaWNhdGUgPT0gRkFMU0UpICU+JQogIGZpbHRlcighc3RyX2RldGVjdCh0d2VldHMsICJSVCIpKSAlPiUKICBmaWx0ZXIoc3RyX2RldGVjdChjbGVhbl90ZXh0LCAicGFydCBkb24iKSkgJT4lCiAgYXJyYW5nZShkZXNjKHJldF9jb3VudCkpICU+JQogIHNlbGVjdCh1c2VyLCBkYXRlLCB0d2VldHMpICU+JQogIGhlYWQobiA9IDUpICU+JSAKICBrYWJsZSgpICU+JQogIGthYmxlX3N0eWxpbmcoKQpgYGAKYGBge3J9CnRiX3JhdyAlPiUKICBmaWx0ZXIoaXNfZHVwbGljYXRlID09IEZBTFNFKSAlPiUKICBmaWx0ZXIoIXN0cl9kZXRlY3QodHdlZXRzLCAiUlQiKSkgJT4lCiAgZmlsdGVyKHN0cl9kZXRlY3QoY2xlYW5fdGV4dCwgIlxcYmRvblxcYiIpKSAlPiUKICBhcnJhbmdlKGRlc2MocmV0X2NvdW50KSkgJT4lCiAgc2VsZWN0KHVzZXIsIGRhdGUsIHR3ZWV0cykgJT4lCiAgaGVhZChuID0gMykgJT4lIAogIGthYmxlKCkgJT4lCiAga2FibGVfc3R5bGluZygpCmBgYApUb3BpayBrZWVtcGF0IGRpc2luaSBrdXJhbmcgbGViaWggbWVueWF0YWthbiBrZW1iYWxpIHR1anVhbiBnZXJha2FuLiBTZWxhaW4gaXR1LCB0b3BpayA0IGp1Z2EgYmVya2FpdGFuIGRlbmdhbiBwZXJqdWFuZ2FuIHlhbmcgeWFuZyBkaWxha3VrYW4gb2xlaCB3YXJnYSBuZXQgeWFuZyBtZW5qYWRpIHR1bnR1dGFuIHlhbmcgaGFydXMgZGlwZW51aGkuIERhbGFtIGtvbnRla3MgaW5pLCB3YXJnYSBuZXQgcGVuZHVrdW5nIGdlcmFrYW4gbWVuZ2FuZ2dhcCBiYWh3YSBwZW1iYXRhbGFuIHBlcnBlcmVzIDUxIHRhaHVuIDIwMTQgZGFuIHJla2xhbWFzaSB0ZWx1ayBiZW5vYSBoYXJ1cyB0ZXJjYXBhaS4gTmFtdW4gaGluZ2dhIHNhYXQgaW5pICgyMDE4KSB0dW50dXRhbiB0ZXJzZWJ1dCBiZWx1bSBkYXBhdCBkaXBlbnVoaSBvbGVoIHBlbWVyaW50YWguIE11bmdraW4ga2FyZW5hIGl0dSBwdWxhLCBiZXJhZ2FtIGFrc2kgYmFpayBkaSBkdW5pYSBueWF0YSBtYXVwdW4gYWtzaSBkaSBkdW5pYSBtYXlhIG1lbGFsdWkgdHdpdCBkZW5nYW4gdGFnYXIsIGF0YXUgcGVuZ2d1bmFhbiBtZWRpYSBzb3NpYWwgbGFpbiB0ZXJ1cyBkaWxha3VrYW4uIAoKQmVyZGFzYXJrYW4gdG9waWsgbW9kZWxsaW5nIHBhZGEgc2VtdWEgZGF0YSwgZGlrZXRhaHVpIGJhaHdhIHNldGlkYWtueWEgYWRhIGVtcGF0IGhhbCB5YW5nIGRpYmFoYXMgb2xlaCB3YXJnYSBuZXQgbWVsYWx1aSB0d2l0IGRlbmdhbiB0YWdhciBiYWxpdG9sYWtyZWtsYW1hc2kgZGFuIGJhbGkgbm90IGZvciBzYWxlLiBQZXJ0YW1hIHRlbnRhbmcgYWtzaSBwZW5vbGFrYW4uIEtlZHVhIHRlbnRhbmcgcGVueWF0YWFuIHNlYmFnYWkgc2VidWFoIGdlcmFrYW4uIEtldGlnYSwgdHVudHV0YW4gZ2VyYWthbiwgZGFuIHRlcmFraGlyIHRlbnRhbmcgc2lrYXAgd2FyZ2EgbmV0IHRlcmthaXQgZGVuZ2FuIHJla2xhbWFzaS4gVW50dWsgbWVtYWhhbWkgd2FjYW5hIHNlY2FyYSBsZWJpaCBkZXRpbCwgdG9waWsgbW9kZWxsaW5nIGp1Z2EgZGlsYWt1a2FuIHBhZGEgdHdpdCB5YW5nIHRlbGFoIGRpa2xhc2lmaWthc2lrYW4gdGVybGViaWggZGFodWx1IG1lbmphZGkgdGlnYSBwZXJpb2RlLiBEaSBtYW5hIHNldGlhcCBwZXJpb2RlIGRpdGVudHVrYW4gYmVyZGFzYXJrYW4gd2FrdHUgcGVuZ3VuZ2dhaGFuIHR3aXQuIFBlcmlvZGUgcGVydGFtYSwgc2ViZWx1bSBwZXJwcmVzIHRlcmJpdC4gUGVyaW9kZSBrZWR1YSBzZXRlbGFoIHBlcnByZXMgdGVyYml0LiBQZXJpb2RlIGtldGlnYSwgcGFzY2EgYWtzaSBhdGF1IHJlc3BvbnMuCgojIyBUb3BpYyBtb2RlbGxpbmcgcGVyaW9kZSAxClBlcmlvZGUgcGVydGFtYSBkaXRhbmRhaSBkZW5nYW4gdHdpdC10d2l0IHlhbmcgZGl1bmdnYWggc2ViZWx1bSBkaXRlcmJpdGFrYW5ueWEgcGVycHJlcyA1MSB0YWh1biAyMDE0LiBEYWxhbSBoYWwgaW5pIHRlcmRhcGF0ICoqMTUyMDkqKiB0d2l0IHlhbmcgZGFwYXQgZGlsYWt1a2FuIHRvcGlrIG1vZGVsbGluZy4gVHdpdCB0ZXJzZWJ1dCB0ZXJwaWxpaCBzZXRlbGFoIGRpbGFrdWthbiBiZWJlcmFwYSBrbGFzaWZpa2FzaSBzZXBlcnRpIHlhbmcgc3VkYWggZGlqZWxhc2thbiBwYWRhIGJhZ2lhbiBzZWJlbHVtbnlhLiBHYW1iYXIgZGkgYmF3YWggaW5pIG1lbnVuanVra2FuIGJlYmVyYXBhIHRvcGlrIHlhbmcgbWVuamFkaSBwZXJoYXRpYW4gd2FyZ2EgbmV0IGRpIHBlcmlvZGUgcGVydGFtYS4gCgpgYGB7ciwgZmlnLmNhcD0iVG9waWMgbW9kZWxsaW5nIGRhcmkgdHdpdCB0ZW50YW5nIFRlbHVrIEJlbm9hIHBlcmlvZGUgMSJ9CiMgdGFraW5nIGRhdGEgZm9yIHRvcGljIG1vZGVsbGluZwp0bV90Yl9wZXJpb2RlMSA8LSB0Yl9yYXcgJT4lCiAgZmlsdGVyKHBlcmlvZGUgPT0gInBlcmlvZGVfMSIpICU+JQogIHNlbGVjdChkYXRlLCB1c2VyLGNsZWFuX3RleHQsIHdvcmRfY291bnQsIHBhcmFtZXRlcikgJT4lCiAgZmlsdGVyKHdvcmRfY291bnQgPj0gMikKCiMgdG9waWMgbW9kZWxsaW5nCnRtX3RiX3AxIDwtIGJpZ3JhbV90bSh0bV90Yl9wZXJpb2RlMSRjbGVhbl90ZXh0LCBudW1iZXJfb2ZfdG9waWNzID0gNCkKdG1fdGJfcDEKYGBgCgpKaWthIGRpbGloYXQgZGFyaSBnYW1iYXIgZGkgYXRhcywgbWFrYSB0b3BpayBwYWRhIHBlcmlvZGUgcGVydGFtYSB0ZXJkaXJpIGRhcmkgYWtzaSB5YW5nIGRpbGFrdWthbiBkaSBsYXAgcmVub24sIGRhbiBqdWdhIGxpcHV0YW4gZGkgbWV0cm8gdHYuIFNlbGFpbiBpdHUgcGFkYSBwZXJpb2RlIHBlcnRhbWEganVnYSB0ZXJqYWRpIHBlcmlzdGl3YSBkZW1vbnN0cmFzaSBkaSBkcHJkLiBIYWwgaW5pIG1lbnVuanVra2FuIGJhaHdhIHNldGlkYWtueWEgZGFsYW0gZ2VyYWthbiBiYWxpIHRvbGFrIHJla2xhbWFzaSAoQlRSKSB0ZXJkYXBhdCBkdWEgcG9sYSBha3NpIHlhbmcgdXRhbWEsIHlhaXR1IGFrYXNpIGtlc2VuaWFuIGRhbiBqdWdhIGRlbW9uc3RyYXNpLiBBa3NpIGtlc2VuaWFuIGRpbGFrdWthbiBtZWxhbHVpIHBlbmdnZWxhcmFuIGtvbnNlciB5YW5nIGp1Z2Egc2VyaW5nIGRpc2VidXQga29uc2VyIG1pbmkuIERhbGFtIGtvbnNlciBpbmkgYmFueWFrIGFydGlzIGJhaWsgbmFzaW9uYWwgbWF1cHVuIGxva2FsIHlhbmcgZGlsaWJhdGthbi4gT3JhbmcgeWFuZyBkYXRhbmcga2Uga29uc2VyIHRlcnNlYnV0IGhhcnVzIG1lbWJheWFyLCBkYW4gaGFzaWwgZGFyaSBrb25zZXIta29uc2VyIHRlcnNlYnV0IGRpamFkaWthbiBzZWJhZ2FpIGRhbmEgZ2VyYWthbi4gCgpQZXJpb2RlIHBlcnRhbWEganVnYSBkYXBhdCBkaXNlYnV0IHNlYmFnYWkgcGVyaW9kZSBwcm9tb3NpIGdlcmFrYW4uIEhhbCBpbmkgZGl0dW5qdWtrYW4gb2xlaCBhZGFueWEgdG9waWsgImJhbnR1IHByb21vIiwgeWFuZyBqaWthIGRpbGloYXQgZGFyaSB0d2l0IHlhbmcgbWVuZ2FuZHVuZyBrYXRhIHRlcnNlYnV0IGRhcGF0IGRpaW50ZXJwcmV0YXNpa2FuIHNlYmFnYWkgYWpha2FuIHVudHVrIG1lbnlhdWFyYWthbiBrZXBlbnRpbmdhbiByYWt5YXQsIGRhbiBqdWdhIG1lbnllYmFybHVhc2thbiBnZXJha2FuLiBCZXJpa3V0IGFkYWxhaCBiZWJlcmFwYSBjb250b2ggdHdpdG55YS4gCgpgYGB7cn0KdGJfcmF3ICU+JQogIGZpbHRlcihpc19kdXBsaWNhdGUgPT0gRkFMU0UpICU+JQogIGZpbHRlcihwZXJpb2RlID09ICJwZXJpb2RlXzEiKSAlPiUKICBmaWx0ZXIoc3RyX2RldGVjdChjbGVhbl90ZXh0LCAiaGViYXQgYmVuZXIiKSkgJT4lCiAgc2VsZWN0KHVzZXIsIGRhdGUsIHR3ZWV0cykgJT4lCiAgaGVhZChuID0gNSkgJT4lIAogIGthYmxlKCkgJT4lCiAga2FibGVfc3R5bGluZygpCmBgYApEYXJpIHR3aXQgZGkgYXRhcyBkYXBhdCBkaWxpaGF0IGRlbmdhbiBqZWxhcyBiYWh3YSBhamFrYW4geWFuZyBkaWxha3VrYW4gdGVydXRhbWEgZGl0dWp1a2FuIHBhZGEgd2lzYXR3YW4geWFuZyBkYXRhbmcga2UgQmFsaSwga2h1c3VzbnlhIHNlbGVicml0aXMuIERpIG1hc2EgYXdhbCBzZWJ1YWggZ2VyYWthbiBoYWwgaW5pIGN1a3VwIG1hc3VrIGFrYWwgdW50dWsgZGlsYWt1a2FuLCBrYXJlbmEgc2VsZWJpdGlzIHBhZGEgdW11bW55YSBzdWRhaCBtZW1pbGlraSAqZm9sbG93ZXIqIHlhbmcgYmFueWFrLiBTZWhpbmdnYSBkZW5nYW4gdGVybGliYXRueWEgc2VsZWJyaXRpcyBkYWxhbSBnZXJha2FuIHlhbmcgZGFsYW0ga29udGVrcyBpbmkgZGFwYXQgZGlsYWt1a2FuIGRlbmdhbiBoYW55YSBtZW1idWF0IHR3aXQgZGVuZ2FuIHRhZ2FyIEJUUiwgdHVudHV0YW4gYXRhdSBnYXVuZyBnZXJha2FuIHRlcnNlYmFyIGxlYmloIGx1YXMuIAoKTGFuZ2thaCBhdGF1IGFqYWthbiB0ZXJzZWJ1dCBwdW4gbWVtYnVhdCBiZWJlcmFwYSBzZWxlYnJpdGlzIGFraGlybnlhIGlrdXQgc2VydGEgZGFsYW0gZ2VyYWthbiBhdGF1IHBlbmdndW5hYW4gdGFnYXIuIEhhbCBpbmkgZGlidWt0aWthbiBkZW5nYW4gbXVuY3VsbnlhIGFrdW4gbWlsaWsgaXdhbiBmYWxzICh5YW5nIGp1Z2EgcGVybmFoIHRlcmxpYmF0IGRhbGFtIGtvbnNlciBCVFIpLCBzbWlsaW5nZGlhbmEsIGRhbiBNZWxhbmkgU3Vib25vIChib3RoIG9mIHRoZW0gYXJlIGNlbGVicml0eSkuIFNlbGFpbiBhcnRpcyBuYXNpb25hbCBqdWdhIHRlbnR1bnlhIGJhbnlhayBhcnRpcyBsb2thbCB5YW5nIGRhbGFtIGtvbnRla3MgaW5pIGRpd2FraWxpIG9sZWggcGFyYSBwZXJzb25lbCBiYW5kIGRhcmkgYmVyYmFnYWkgYWxpcmFuIG11c2lrIHlhbmcgdGVybGliYXQuIAoKU2VsYWluIG1lbmdhamFrIHNlbGViaXRpcywgZ2VyYWthbiBCVFIganVnYSBtZW1idWF0IG1lZGlhIHByb21vc2kgbGFpbm55YSBzZXBlcnRpIHBlbWJ1YXRhbiB2aWRlbyBkYW4gcG9zdGVyLiBEaSBtYW5hIGhhc2lsIGRhcmkgdG9waWsgbW9kZWxsaW5nIGp1Z2EgbWVudW5qdWtrYW4gYWRhbnlhIGFqYWthbiB1bnR1ayBtZW5ndW5kdWggdmlkZW8ga2xpcCBtdXNpayB5YW5nIGp1Z2EgdGVya2FpYXQgZGVuZ2FuIHBlbm9sYWthbiByZWtsYW1hc2kuIERlbmdhbiBrYXRhIGxhaW4sIHBhZGEgcGVyaW9kZSBwZXJ0YW1hIGdlcmFrYW4gQlRSLCB0d2l0dGVyIGRpZ3VuYWthbiBzZWJhZ2FpIG1lZGlhIGtvbXVuaWthc2ksIGtvcmRpbmFzaSwgc2VrYWxpZ3VzIHBlbnllYmFybHVhc2FuIHBlc2FuIHBlbm9sYWthbiByZWtsYW1hc2kgdGVyaGFkYXAgd2FyZ2EgbmV0LiAKCiMjIFRvcGljIG1vZGVsbGluZyBwZXJpb2RlIDIKRGF0YSB1bnR1ayB0b3BpayBtb2RlbGxpbmcgMiBpbmkgYmVyYXNhbCBkYXJpIHR3aXQgeWFuZyBkaXVuZ2dhaCBzZXRlbGFoIGFkYSBhdGF1IHRlcmJpdG55YSBwZXJwcmVzIG5vbW9yIDUxIHRhaHVuIDIwMTQuIEJlcmlrdXQgYWRhbGFoIGhhc2lsIHRvcGljIG1vZGVsbGluZyBkYXJpICoqMTcxODYqKiB0d2l0IHVudHVrIHBlcmlvZGUgMi4gCgpgYGB7ciwgZmlnLmNhcD0iVG9waWMgbW9kZWxsaW5nIGRhcmkgdHdpdCB0ZW50YW5nIFRlbHVrIEJlbm9hIHBlcmlvZGUgMSJ9CiMgdGFraW5nIGRhdGEgZm9yIHRvcGljIG1vZGVsbGluZwp0bV90Yl9wZXJpb2RlMiA8LSB0Yl9yYXcgJT4lCiAgZmlsdGVyKHBlcmlvZGUgPT0gInBlcmlvZGVfMiIpICU+JQogIHNlbGVjdChkYXRlLCB1c2VyLGNsZWFuX3RleHQsIHdvcmRfY291bnQsIHBhcmFtZXRlcikgJT4lCiAgZmlsdGVyKHdvcmRfY291bnQgPj0gMikKCiMgdG9waWMgbW9kZWxsaW5nCnRtX3RiX3AyIDwtIGJpZ3JhbV90bSh0bV90Yl9wZXJpb2RlMiRjbGVhbl90ZXh0LCBudW1iZXJfb2ZfdG9waWNzID0gNCkKdG1fdGJfcDIKYGBgCgpUb3BpayBwZXJ0YW1hIGRhcmkgcGVyaW9kZSBkdWEgYWRhbGFoIHRlbnRhbmcgcGVycHJlcyB5YW5nIG1lbXVuZ2tpbmthbiBhdGF1IG1lbmR1a3VuZyBhZGFueWEgcmVrbGFtYXNpIHRlbHVrIGJlbm9hIHlhaXR1IHBlcnByZXMgNTEgdGFodW4gMjAxNC4gVG9waWsgcGVydGFtYSBkaSBzaW5pIGt1cmFuZyBsZWJpaCBqdWdhIGJlcmlzaSB0ZW50YW5nIGhhbCB0ZXJzZWJ1dCwgZGkgbWFuYSBwZXJwcmVzIG5vbW9yIDUxIGRpYW5nZ2FwIG9sZWggd2FyZ2EgbmV0IHBlbmdndW5hIFR3aXR0ZXIgc2ViYWdhaSBzZWJ1YWgga2VzYWxhaGFuIHNlaGluZ2dhIGhhcnVzIGRpYmF0YWxrYW4uIERpIHNpbmkgd2FyZ2EgbmV0IGp1Z2EgbWVuZ3VuZ2thcGthbiBhbGFzYW4gbWVyZWthIG1lbmR1a3VuZyBnZXJha2FuIHBlbWJhdGFsYW4gaW5pIHNlcGVydGkgZGFwYXQgZGlsaGF0IGRhbGFtIHR3dCBiZXJpa3V0LiAKCmBgYHtyfQp0Yl9yYXcgJT4lCiAgZmlsdGVyKGlzX2R1cGxpY2F0ZSA9PSBGQUxTRSkgJT4lCiAgZmlsdGVyKHBlcmlvZGUgPT0gInBlcmlvZGVfMiIpICU+JQogIGZpbHRlcihzdHJfZGV0ZWN0KGNsZWFuX3RleHQsICJhbGFzYW4gbWVuZHVrdW5nIikpICU+JQogIHNlbGVjdCh1c2VyLCBkYXRlLCB0d2VldHMpICU+JQogIGhlYWQobiA9IDUpICU+JSAKICBrYWJsZSgpICU+JQogIGthYmxlX3N0eWxpbmcoKQpgYGAKQWRhcHVuIHNlcGVydGlueWEgcGVuZ3VuZ2thcGFuIGFsYXNhbiB0ZXJzZWJ1dCBqdWdhIGRpcGljdSBvbGVoICJtdW5na2luIiBzaWFyYW4gcmFkaW8geWFuZyBtZW5hbnlha2FuIHRlbnRhbmcgYWxhc2FuIG1lbmR1a3VuZyBnZXJha2FuIEJUUi4gSGFsIGluaSBkYXBhdCBkaWxpaGF0IHBhZGEgdHdpdCB0ZXJha2hpciBkaSBhdGFzLCB5YWl0dSB0d2l0IHlhbmcgZGl1bmdnYWggb2xlaCBha3VuIEBtZW5hcmFmbWJhbGkgZGFuIGRpIFJUIG9sZWggd2FyZ2EgbmV0IGxhaW5ueWEuIAoKTGViaWggamF1aCBkYXJpIGl0dSwgc2VwZXJ0aW55YSBzZXRpYXAgb3JhbmcgKHBlbmdndW5hIFR3aXR0ZXIpIG1lbWlsaWtpIGFsYXNhbm55YSBtYXNpbmctbWFzaW5nLiBEaSBzaW5pIGtpdGEgbWVsaWhhdCBiYWh3YSBhZGEgeWFuZyBtZW5kdWt1bmcga2FyZW5hIG1hc3lhcmFrYXQgbGFpbiBqdWdhIG1lbmR1a3VuZy4gTmFtdW4gYWRhIGp1Z2EgeWFuZyBtZW5kdWt1bmcga2FyZW5hIG1lbmdhbmdnYXAgcmVrbGFtYXNpIGp1c3RydSBha2FuIG1lcnVzYWsgYWxhbS4gV2FsYXVwdW4gc2ViZW5hcm55YSByZWtsYW1hc2kgc2VuZGlyaSBkaWxha3VrYW4gdW50dWsgbWVuZyBhdHRyYWN0IHR1cmlzIHVudHVrIGRhdGFuZyBrZSBCYWxpLiBOYW11biBkaSBzaW5pIHdhcmdhIG5ldCBqdXN0cnUgbWVuZ2FuZ2dhcCBzZWJhbGlrbnlhLCB0dXJpcyB5YW5nIGRhdGFuZyBrZSBCYWxpIGJ1a2FuIHVudHVrIG1lbmRhcGF0a2FuIGZhc2lsaXRhcyBiZXJrZWxhcyBpbnRlcm5hc2lvbmFsIHNlcGVydGkgcmVuY2FuYSBwZW1iYW5ndW5hbiBkaSBsYWhhbiBoYXNpbCByZWtsYW1hc2kuIFRhcGksIHR1cnMgZGF0YW5nIGtlIEJhbGkgdW50dWsgbWVuaWttYXRpIGtlaW5kYWhhbiBhbGFtIEJhbGkuIEhhbCBpbmkgcHVsYSBsYWggeWFuZyBtZW1idWF0IG1lcmVrYSB5YWtpbiBSZWtsYW1hc2kgbWVydXBha2FuIGhhbCB5YW5nIHRpZGFrIHNlaGFydXNueWEgZGkgbGFrdWthbiwga2h1c3VzbnlhIHRlbHVrIEJlbm9hIHlhbmcganVnYSBtZXJ1cGFrYW4gZGFlcmFoIGtvbnNlcnZhc2kgbWVudXJ1dCBwZXJwcmVzIHRhaHVuIDIwMTEuIAoKSGFsIGxhaW4geWFuZyBqdWdhIG1lbmphZGkgcGVyaGF0aWFuIHdhcmdhIG5ldCBwYWRhIHBlcmlvZGUga2UgZHVhIGFkYWxhaCBhZGFueWEga2VjdXJpZ2FhbiBwZW1uZmFhdGFuIHRva29oIGludGVybmFzaW9uYWwgKGNyaXN0aWFubykgb2xlaCBwZW5ndWFzYSAocGVtZXJpbnRhaCkuIFNlaGluZ2dhIHdhcmdhIG5ldCBrZW11ZGlhbiBqdWdhIG1lbXVuY3Vsa2FuIHRhZ2FyICNjcjdmb29sZWQgKGxpaGF0IGJhZ2lhbiB0YWdhcikuIFRvcGlrIGR1YSBkYXJpIHBlcmlvZGUgZHVhIGt1cmFuZyBsZWJpaCBtZW1iaWNhcmFrYW4gaGFsIHRlcnNlYnV0LiAKCgpgYGB7cn0KdGJfcmF3ICU+JQogIGZpbHRlcihpc19kdXBsaWNhdGUgPT0gRkFMU0UpICU+JQogIGZpbHRlcihwZXJpb2RlID09ICJwZXJpb2RlXzIiKSAlPiUKICBmaWx0ZXIoIXN0cl9kZXRlY3QodHdlZXRzLCAiUlQiKSkgJT4lCiAgZmlsdGVyKHN0cl9kZXRlY3QodHdlZXRzLCAicGFyYWRlIikpICU+JQogIHNlbGVjdCh1c2VyLCBkYXRlLCB0d2VldHMpICU+JQogIGhlYWQobiA9IDUpICU+JSAKICBrYWJsZSgpICU+JQogIGthYmxlX3N0eWxpbmcoKQpgYGAKU2FsYWggc2F0dSBrZWdpYXRhbiBDcmlzdGlhbm8gUm9uYWxkbyBkaSBCYWxpIHdha3R1IGl0dSBhZGFsYWggbWVuYW5hbSBtYW5ncm92ZS4gRGkgc2FuYSB3YXJnYSBuZXQgbWVueXVhcmFrYW4gYmFod2EgbWVsYWt1a2FuIHJla2xhbWFzaSBzYW1hIGRlbmdhbiBtZXJ1c2FrIG1hbmdyb3ZlIHlhbmcgZGl0YW5hbS4gRGFsYW0gcGVyaW9kZSBpbmkgcHVsYSwgc2FsYWggc2F0dSBha3NpIHlhbmcga2VtdWRpYW4gZGl3dWp1ZGthbiBkaSBkdW5pYSBueWF0YSBhZGFsYWggZGVuZ2FuIG1lbGFrdWthbiBwYXJhZGUgYnVkYXlhLiAKCiMjIFRvcGljIG1vZGVsbGluZyBwZXJpb2RlIDMKUGVyaW9kZSB0ZXJha2hpciBhdGF1IHBlcmlvZGUgdGlnYSBtZXJ1cGFrYW4gZmFzZSBkaSBtYW5hIGdlcmFrYW4gc3VkYWggbWF0YW5nLiBNYXRhbmcgZGkgc2luaSBkaWFydGlrYW4gdHVqdWFuIGdlcmFrYW4gc3VkYWggamVsYXMsIHBpaGFrIHlhbmcgZGl0dW50dXQganVnYSBqZWxhcy4gU2VsYWluIGl0dSwgcGFkYSBmYXNlIGluaSBiZXJiYWdhaSBha3Rpdml0YXMganVnYSBzdWRhaCBiZXJqYWxhbi4gRGFsYW0ga29udGVrcyBpbmksIHR3aXQgeWFuZyBkaXVuZ2dhaCBwYWRhIHBlcmlvZGUgaW5pIGtlbXVuZ2tpbmFuIGJlc2FyIGp1Z2EgbWVuZ2dhbWJhcmthbiBoYWwgeWFuZyBrdXJhbmcgbGViaWggc2FtYSwgeWFpdHUgYWRhIHRvcGlrIHRlbnRhbmcgdHVqdWFuIGdlcmFrYW4sIHBpaGFrIHlhbmcgZGl0dW50dXQsIHNlcnRhIGtlZ2lhdGFuIHJ1dGlubnlhLCB5YWl0dSBrb25zZXIgbWluaS4gQXN1bXNpIHRlcnNlYnV0IGRhcGF0IGRpYnVrdGlrYW4gZGVuZ2FuIG1lbGloYXQgaGFzaWwgdG9waWMgbW9kZWxsaW5nIGRhcmkgKioyMjY3MioqIHR3aXQgcGFkYSBwZXJpb2RlIDMgc2VwZXJ0aSBkYXBhdCBkaWxpaGF0IHBhZGEgZ2FtYmFyIGRpIGJhd2FoIGluaS4gCgpgYGB7ciwgZmlnLmNhcD0iVG9waWMgbW9kZWxsaW5nIGRhcmkgdHdpdCB0ZW50YW5nIFRlbHVrIEJlbm9hIHBlcmlvZGUgMSJ9CiMgdGFraW5nIGRhdGEgZm9yIHRvcGljIG1vZGVsbGluZwp0bV90Yl9wZXJpb2RlMyA8LSB0Yl9yYXcgJT4lCiAgZmlsdGVyKHBlcmlvZGUgPT0gInBlcmlvZGVfMyIpICU+JQogIHNlbGVjdChkYXRlLCB1c2VyLGNsZWFuX3RleHQsIHdvcmRfY291bnQsIHBhcmFtZXRlcikgJT4lCiAgZmlsdGVyKHdvcmRfY291bnQgPj0gMikKCiMgdG9waWMgbW9kZWxsaW5nCnRtX3RiX3AzIDwtIGJpZ3JhbV90bSh0bV90Yl9wZXJpb2RlMyRjbGVhbl90ZXh0LCBudW1iZXJfb2ZfdG9waWNzID0gNCkKdG1fdGJfcDMKYGBgCgpUb3BpayBwZXJ0YW1hIGRhcmkgcGVyaW9kZSB0aWdhcyBkaSBzaW5pIGJlcmthaXRhbiBkZW5nYW4gYmViZXJhcGEgYWtzaSBtZW5kdWt1bmcgZ2VyYWthbiBtZW5vbGFrIHJla2xhbWFzaS4gS2VnaWF0YW4gdGVyc2VidXQgYmVydXBhIGtvbnNlciAqKnN2YXJhIGJ1bWkqKiBkYW4gZmVzdGl2YWwgbGF5YW5nLWxheWFuZyBkaSBwYWRhbmcgZ2FsYWsuIFNlbGFpbiBpdHUsIGtldGlrYSBwYWRhIHBlcmlvZGUgMSBha3NpIGRlbW9uc3RyYXNpIGRpbGFrdWthbiBkaSBrYW50b3IgRFBSRCBwYWRhIHBlcmlvZGUgMyBpbmkgYWtzaSBkaWxha3VrYW4gZGkga2FudG9yIEd1YmVybnVyLiBTZWxhaW4gZGlsYWt1a2FuIGRpIEJhbGksIGFza2kgbWVub2xhayByZWtsYW1hc2kganVnYSBkaWxha3VrYW4gZGkgSmFrYXJ0YS4gQWtzaSBkaSBKYWthcnRhIGRpbGFrdWthbiBkYWxhbSBiZW50dWsga29uc2VyIHlhbmcgZGlsYWtzYW5ha2FuIGRpICoqUm9sbGluZyBTdG9uZGUgQ2FmZSoqLiBEaSBtYW5hIG1hamFsYWggbXVzaWsgdGVyc2VidXQganVnYSB0ZWxhaCBtZW1iZXJpa2FuIHBlbmdoYXJnYWFuIHBhZGEgZ2VyYWthbiBiYWxpIHRvbGFrIHJla2xhbWFzaSBzZXBlcnRpIGRhcGF0IGRpbGloYXQgcGFkYSBiZWJlcmFwYSB0d2l0IGJlcmlrdXQuCgpgYGB7cn0KdGJfcmF3ICU+JQogIGZpbHRlcihpc19kdXBsaWNhdGUgPT0gRkFMU0UpICU+JQogIGZpbHRlcihwZXJpb2RlID09ICJwZXJpb2RlXzMiKSAlPiUKICBmaWx0ZXIoIXN0cl9kZXRlY3QodHdlZXRzLCAiUlQiKSkgJT4lCiAgZmlsdGVyKHN0cl9kZXRlY3QodHdlZXRzLCAiUm9sbGluZyBTdG9uZSIpKSAlPiUKICBzZWxlY3QodXNlciwgZGF0ZSwgdHdlZXRzKSAlPiUKICBoZWFkKG4gPSA1KSAlPiUgCiAga2FibGUoKSAlPiUKICBrYWJsZV9zdHlsaW5nKCkKYGBgCgpUb3BpayBrZXRpZ2EgcGFkYSBwZXJpZGUgdGVyYWtoaXIganVnYSBtZW55aW5nZ3VuZyBrZWJlcmFkYWFuIGRlc2EgYWRhdCB5YW5nIGp1Z2EgZGFwYXQgZGlrYXRlZ29yaWthbiBzZWJhZ2FpIHJlcHJlc2VudGFzaSBidWRheWEgbWFzeWFyYWthdCBiYWxpLiBEYWxhbSBrb250ZWtzIGluaSwgZHVrdW5nIGRlc2EgYWRhdCB0ZXJoYWRhcCBCVFIgbWVtYnVhdCBnZXJha2FuIGJ1a2FuIGhhbnlhIG1lbnllbnR1aCBnZW5lcmFzaSBtaWxlbmlhbCB5YW5nIGFrdGlmIGRpIG1lZGlhIHNvc2lhbCwgdGV0YXBpIGp1Z2EgbWFzeWFyYWthdCBzZWNhcmEga2VzdWx1cmhhbiBkaSBCYWxpLiAKCmBgYHtyfQp0Yl9yYXcgJT4lCiAgZmlsdGVyKGlzX2R1cGxpY2F0ZSA9PSBGQUxTRSkgJT4lCiAgZmlsdGVyKHBlcmlvZGUgPT0gInBlcmlvZGVfMyIpICU+JQogIGZpbHRlcighc3RyX2RldGVjdCh0d2VldHMsICJSVCIpKSAlPiUKICBmaWx0ZXIoc3RyX2RldGVjdChjbGVhbl90ZXh0LCAiZGVzYSBhZGF0IikpICU+JQogIHNlbGVjdCh1c2VyLCBkYXRlLCB0d2VldHMpICU+JQogIGhlYWQobiA9IDUpICU+JSAKICBrYWJsZSgpICU+JQogIGthYmxlX3N0eWxpbmcoKQpgYGAKCkJlcmRhc2Fya2FuIHBlbnV0dXJhbiBwYXJ0aXNpcGFuIHBlbmVsaXRpYW4sIHJldml0YWxpc2FzaSBtZXJ1cGFrYW4gc2FsYWggc2F0dSBwcm9wYWdhbmRhIHBlbmR1a3VuZyByZWtsYW1hc2kuIFBhZGEgcGVyaW9kZSB0aWdhIGluaSBraXRhIGp1Z2EgZGFwYXQgbWVsaWhhdCBiYWh3YSByZXZpdGFsaXNhc2kgZGlhbmdnYXAgc2ViYWdhaSBrZWRvay4gQmViZXJhcGEgdHdpdCB0ZW50YW5nIGhhbCB0ZXJzZWJ1dCBhZGFsYWggc2ViYWdhaSBiZXJpa3V0LiAKCmBgYHtyfQp0Yl9yYXcgJT4lCiAgZmlsdGVyKGlzX2R1cGxpY2F0ZSA9PSBGQUxTRSkgJT4lCiAgZmlsdGVyKHBlcmlvZGUgPT0gInBlcmlvZGVfMyIpICU+JQogIGZpbHRlcighc3RyX2RldGVjdCh0d2VldHMsICJSVCIpKSAlPiUKICBmaWx0ZXIoc3RyX2RldGVjdCh0d2VldHMsICJyZXZpdGFsaXNhc2kiKSkgJT4lCiAgc2VsZWN0KHVzZXIsIGRhdGUsIHR3ZWV0cykgJT4lCiAgaGVhZChuID0gMTApICU+JSAKICBrYWJsZSgpICU+JQogIGthYmxlX3N0eWxpbmcoKQpgYGAKClRlcmFraGlyLCBkaSBzaW5pIGtpdGEganVnYSBkYXBhdCBtZW5nZXRhaHVpIGJhaHdhIHNldGlhcCBhcnRpcyBhdGF1IGJhbmQgeWFuZyBtYWluIGRpIGtvbnNlciBCVFIgdGlkYWsgZGliYXlhciBzZWJhZ2FpbWFuYSBkaSBueWF0YWthbiBvbGVoIHNhbGFoIHNhdHUgcGVuZ2dlcmFrbnlhIChKUlhfU0lEKSBhdGF1IGplcmluayB5YW5nIGp1Z2EgbWVydXBha2FuIGRydW1lciBiYW5kIFNJRC4gCgpgYGB7cn0KdGJfcmF3ICU+JQogIGZpbHRlcihpc19kdXBsaWNhdGUgPT0gRkFMU0UpICU+JQogIGZpbHRlcihwZXJpb2RlID09ICJwZXJpb2RlXzMiKSAlPiUKICBmaWx0ZXIoIXN0cl9kZXRlY3QodHdlZXRzLCAiUlQiKSkgJT4lCiAgZmlsdGVyKHN0cl9kZXRlY3QoY2xlYW5fdGV4dCwgImtvbnNlciBkaWJheWFyIikpICU+JQogIHNlbGVjdChkYXRlLCB0d2VldHMpICU+JQogIHByaW50KCkgJT4lCiAgaGVhZChuID0gMTApICU+JSAKICBrYWJsZSgpICU+JQogIGthYmxlX3N0eWxpbmcoKQpgYGAKCkJhZ2kgbWVyZWthIHlhbmcgbWF1IG1haW4gZGkga29uc2VyLCByZXNpa28gYnVrYW4gaGFueWEgaGFydXMgbW9kYWwgc2VuZGlyaSB0YXBpIGp1Z2EgZGltdXN1aGksIGRhbiBiYWhrYW4gbXVuZ2tpbiBkaXB1dHVza2FuIGtvbnRyYWtueWEuIE5hbXVuIGthcmVuYSBpdHUgcHVsYSBnZXJha2FuIGluaSBkYXBhdCBkaWthdGFrYW4gc2ViYWdhaSBnZXJha2FuIG9yZ2FuaWsuIEdlcmFrYW4gc2VwZXJ0aSBpbmkgIm11bmdraW4iIGhhbnlhIGJpc2EgbXVuY3VsIGthcmVuYSBhZGFueWEga2VzYWRhcmFuIGRlbmdhbiB0dWp1YW4gZ2VyYWthbi4gCgojIFBlbnV0dXAKU2ViYWdhaSBwZW51dHVwIHNheWEgaW5naW4ga2VtYmFsaSBtZXJldmlldyB0ZW11YW4gZGFyaSB0d2l0IHlhbmcgZGlkYXBhdCBkZW5nYW4gZHVhIHBhcmFtZXRlciBwZW5jYXJpYW4sIHlhaXR1IHRhZ2FyIGJhbGlub3Rmb3JzYWxlIGRhbiBiYWxpdG9sYWtyZWtsYW1zaS4gRHVhIHBhcmFtZXRlciB0ZXJzZWJ1dCBtZW5naGFzaWxrYW4gKio4Mi42MTYqKiB0d2l0IGRhbiBzZXRlbGFoIGRpbGFrdWthbiBwZW5nZWNla2FuIGR1cGxpa2FzaSBiZXJkYXNhcmthbiBrb250ZW4gdHdpdG55YSBkaWRhcGF0ICoqNjkuMDEzKiogeWFuZyB1bmlrIChidWthbiBkdXBsaWNhdGUpLiBKdW1sYWggdHdpdCB0ZXJzZWJ1dCBkaWtpcmltIG9sZWggKioyMS44MjcqKiB1c2VybmFtZSBkYW4gbWVsaWJhdGthbiAqKjMxLjc5NioqIHVzZXJuYW1lIHlhbmcgYmVyYmVkYS4KCkFrdW4gdHdpdCB5YW5nIHBhbGluZyBiYW55YWsgbWVuZ2lyaW0gdHdpdCBkZW5nYW4gdGFnYXIgQlRSIGFkYWxhaCBha3VuICoqRm9yQkFMSTEzKiosIGRhbiBha3VuIHlhbmcgcGFsaW5nIHNlcmluZyB0ZXJsaWJhdCAoYmVyYWRhKSBkYWxhbSB0d2l0IGFkYWxhaCBha3VuICoqSlJYX1NJRCoqLiBEdWEgYWt1biB0ZXJzZWJ1dCBkaW1pbGlraSBvbGVoIGtlbG9tcG9rIGRhbiBpbmRpdmlkdSB5YW5nIGp1Z2EgbWVuamFkaSBwZW5nZ2VyYWsgZ2VyYWthbi4gQWt1biBGb3JCQUxJMTMgbWVydXBha2FuIHNlYnVhaCBmb3J1bSB1dGFtYSBtYXN5YXJha2F0IHBlbm9sYWsgcmVrbGFtYXNpLiBTZWRhbmdrYW4gSlJYX1NJRCBhZGFsYWggc2F0dSBwZW5kdWt1bmcgZ2VyYWthbiB5YW5nIGp1Z2EgY3VrdXAgdm9rYWwgbWVueXVhcmFrYW4ga2VwZW50aW5nYW4gbWFzeWFyYWthdCBwZW5vbGFrIHJla2xhbWFzaSBiYWlrIGRpIG1lZGlhIHNvc2lhbCBtYXVwdW4gYXJ1cyB1dGFtYS4gCgpHZXJha2FuIEJUUiBkaSBtZWRpYSBzb3NpYWwgdGVyYmFudHUgb2xlaCBrZWJlcmFkYWFuIGFrdW4tYWt1biB5YW5nIHN1ZGFoIGxlYmloIGR1bHUgcG9wdWxlciBkYW4gbWVtaWxpa2kgY3VrdXAgYmFueWFrIHBlbmdpa3V0IChjZWxlYnJpdHkpLiBOYW11biBiZXJkYXNhcmthbiB0d2l0IHNhbGFoIHNhdHUgZGFyaSBzZWxlYnJpdGFzIHRlcnNlYnV0LCBrZW11bmdraW5hbiB0aWRhayBzZW11YSBtYXUgaWt1dCBzZXJ0YSBkYWxhbSBtZW5kdWt1bmcgZ2VyYWthbiBCVFIsIGthcmVuYSBhZGEgcmVzaWtvIGJhaWsgcHJvZmVzaW9uYWwgc2VwZXJ0aSBwZW1iYXRhbGFuIGtvbnRyYWsgbWF1cHVuIGluZGl2aWR1YWwgc2VwZXJ0aSBkaWJlbmNpIHB1Ymxpay4gV2FsYXVwdW4gZGVtaWtpYW4gc2FtcGFpIHNhYXQgaW5pIGdlcmFrYW4gdGVyc2VidXQgdGVsYWggYmVydGFoYW4gc2VsYW1hIGhhbXBpciA1IHRhaHVuIGRhbiBtZW1pbGlraSBiZWJlcmFwYSBwb2xhIGdlcmFrYW4gcGVub2xha2FuIHlhbmcgcnV0aW4gZGlsYWt1a2FuLiAKCipQZXJ0YW1hKiwgYWtzaSBkZW1vbnN0cmFzaS4gQWtzaSBkZW1vbnN0cmFzaSB0ZWxhaCBkaWxha3VrYW4gYmViZXJhcGEga2FsaSwgZGkgYW50YXJhIHlhbmcgdGVydGFuZ2thcCBkaSBtZWRpYSBzb3NpYWwgZGFuIGtlbXVuZ2tpbmFuIGp1Z2EgbWVuamFkaSBzYWxhaCBzYXR1IGFrc2kgeWFuZyB0ZXJiZXNhciBhZGFsYWggZGVtbyBkaSBrYW50b3IgRFBSRCBkYW4gZGkgR3ViZXJudXIgQmFsaS4gU2VsYWluIG1lbGFrdWthbiBha3NpIGRlbW9uc3RyYXNpIGRpIGR1bmlhIG55YXRhLCBtZXJla2EganVnYSBtZW1iYWdpa2FuIHBlbmdhbGFtYW4gZGFuIGF0YXUgb3BpbmlueWEgdGVudGFuZyB0dW50dXRhbiBkYXJpIGFrc2kgdGVyc2VidXQgZGkgZHVuaWEgbWF5YS4gT2xlaCBrYXJlbmEgaXR1IHB1bGEgc3R1ZGkgdGVyaGFkYXAgbWVkaWEgc29zaWFsIGp1Z2EgZGFwYXQgbWVtYmVyaWthbiBnYW1iYXJhbiB0ZW50YW5nICJzZWJ1YWggY2FyYSBiYXJ1IG1lbmphZGkgbWFzeWFyYWthdC4iICpLZWR1YSosIFBhcmFkZSBidWRheWEsIG1pc2FsbnlhIGRlbmdhbiBtZWxha3NhbmFrYW4gZGFuIGF0YXUgbWVuZ2lrdXRpIGZlc3RpdmFsIGxheWFuZy1sYXlhbmcgZGFuIGp1Z2Ega2VnaWF0YW4gYnVkYXlhIGxhaW5ueWEuICpLZXRpZ2EqLCBrb25zZXIgbWluaSB5YW5nIHJ1dGluIGRpbGFrc2FuYWthbiBkZW5nYW4gbWVsaWJhdGthbiBiYW55YWsgbXVzaXNpIGJhaWsgbG9rYWwgbWF1cHVuIG5hc2lvbmFsLgoKTWVsYWx1aSBha3NpLWFrc2kgZGkgYXRhcyBnZXJha2FuIEJUUiB5YW5nIHNhYXQgaW5pIGp1Z2EgZGlkdWt1bmcgb2xlaCAiRGVzYSBBZGF0IiBtZW55dWFyYWthbiBiZWJlcmFwYSBoYWwuIFBhZGEgcGVyaW9kZSBwZXJ0YW1hLCB5YWl0dSBwZXJpb2RlIHNlYmVsdW0gcGVycHJlcyA1MSBkaSB0ZXJiaXRrYW4gbWVyZWthIHNlbGFpbiBhZGEgMyBha3NpIGtvbnNlciBkYW4ganVnYSBkZW1vbnN0cmFzaSwgZGkgbWVkaWEgc29zaWFsIG1lcmVrYSBjZW5kZXJ1bmcgbWVuZ2FqYWsgZGFuIG1lbnNvc2lhbGlzYXNpa2FuIGdlcmFrYW4uIE9sZWgga2FyZW5hIGl0dSBwZXJpb2RlIDEgaW5pIGRhcGF0IGRpYW5nZ2FwIHNlYmFnYWkgZmFzZSBlbWVyZ2VuY2UuIEZhc2UgaW5pIGRpdGFuZGFpIGRlbmdhbiBhZGFueWEgcGVuZ3VuZ2thcGFuIGtlcmVzYWhhbiBtYXNpbmctbWFzaW5nIGluZGl2aWR1IHlhbmcga2VtdWRpYW4gbWVsZW1iYWdhIGRhbiBtZW5qYWRpIGtlc2FkYXJhbiBiZXJzYW1hIHVudHVrIG1lbm9sYWsgZGFuIG1lbGFrdWthbiBha3NpIHBlbm9sYWthbi4gCgpQYWRhIHBlcmlvZGUga2VkdWEsIGJlcmRhc2Fya2FuIHR3aXQtdHdpdCB5YW5nIGRpdW5nZ2FoIG9sZWggd2FyZ2EgbmV0IGRhcGF0IGRpcGFoYW1pIGJhaHdhIG1lcmVrYSBzdWRhaCBtdWxhaSBtZW5nYXJhaGthbiB0dW50dXRhbiBwYWRhIHBpaGFrLXBpaGFrIHRlcnRlbnR1LiBEYWxhbSBrb250ZWtzIGluaSwgcGloYWsgeWFuZyBtZXJla2EgdHVudHV0IGRpIGFudGFyYW55YSBhZGFsYWhhIHBlbWVyaW50YWggZGFlcmFoIGRhbiBqdWdhIHBlbWVyaW50YWggcHVzYXQgZGVuZ2FuIGtlbWVudHJpYW4geWFuZyB0ZXJrYWl0LiBTZWxhaW4gaXR1LCBwYWRhIHBlcmlvZGUga2VkdWEgbWVyZWthIGp1Z2Egc3VkYWggbWVtYXN0aWthbiBiYWh3YSBtZXJla2EgY3VrdXAgbWF0YW5nIHNlYmFnYWkgc2VidWFoIGdlcmFrYW4uIE9sZWgga2VyYW5hIGl0dSwgbWVyZWthIGp1Z2Egc2VyaW5nIG1lcmVzcG9ucyBwaWhhay1waWhhayB5YW5nIGRpZHVnYSBtZW5kdWt1bmcgZGFuIG1lbmRlbmd1bmdrYW4gcmV2aXRhbGlzYXNpLiBTYWxhaCBzYXR1bnlhIGFkYWxhaCBrZWRhdGFuZ2FuIENyaXN0aWFubyBkYW4ganVnYSBwZXJhbmcgYmFsaWhvLiAKClBhZGEgUGVyaW9kZSBrZXRpZ2EsIGdlcmFrYW4gbWVtYXN0aWthbiBiYWh3YSBtZW5vbGFrIHJla2xhbWFzaSBtZXJ1cGFrYW4gc2VidWFoIHNpa2FwIGRhbiBha2FuIHRlcnVzIGJlcmxhbmp1dCBoaW5nZ2EgdHVudHV0YW4gbWVyZWthIGRpcGVudWhpLiBPbGVoIGthcmVuYSBpdHUsIHNlbGFpbiB0b3Bpay10b3BpayB0ZW50YW5nIGtlZ2lhdGFuIHlhbmcgc3VkYWggcnV0aW4gZGlsYWt1a2FuIHBhZGEgcGVyaW9kZSB0aWdhIGluaSBqdWdhIGRpdGVtdWkgdG9waWsgdGVudGFuZyBrb25zZXIgeWFuZyBkaWxha3VrYW4gZGkgZGFlcmFoIGxhaW4sIHByZXN0YXNpIGdlcmFrYW4sIGRhbiBkdWt1bmdhbiwgZGFuIHBlcm55YXRhYW4gc2lrYXAuIA==